test: add unit tests for various components and utilities

- Created tests for formatBytes function to ensure correct formatting of byte values.
- Implemented tests for InjectContext to validate resource injection and cleanup.
- Added tests for logo-class helpers to verify platform alias mappings.
- Developed tests for nezha-api functions to check API response handling.
- Introduced tests for static geographic data to validate country coordinates and GeoJSON structure.
- Created comprehensive tests for utility functions including date formatting and public note parsing.
- Added tests for Server page to ensure correct rendering and functionality.
- Implemented tests for simple pages including error handling and navigation.
- Set up testing environment with Vitest and configured coverage reporting.
This commit is contained in:
hamster1963
2026-06-15 11:29:48 +08:00
parent 5670811991
commit 5720af9108
38 changed files with 5686 additions and 23 deletions
+39
View File
@@ -0,0 +1,39 @@
import { render, screen } from "@testing-library/react";
import { describe, expect, it } from "vitest";
import {
GetFontLogoClass,
GetOsName,
MageMicrosoftWindows,
} from "@/lib/logo-class";
describe("logo-class helpers", () => {
it("maps known platform aliases to font logo classes", () => {
expect(GetFontLogoClass("ubuntu")).toBe("ubuntu");
expect(GetFontLogoClass("darwin")).toBe("apple");
expect(GetFontLogoClass("linux")).toBe("tux");
expect(GetFontLogoClass("amazon")).toBe("redhat");
expect(GetFontLogoClass("arch")).toBe("archlinux");
expect(GetFontLogoClass("opensuse-tumbleweed")).toBe("opensuse");
expect(GetFontLogoClass("unknown")).toBe("tux");
});
it("maps platform aliases to readable operating system names", () => {
expect(GetOsName("ubuntu")).toBe("Ubuntu");
expect(GetOsName("darwin")).toBe("macOS");
expect(GetOsName("linux")).toBe("Linux");
expect(GetOsName("amazon")).toBe("Redhat");
expect(GetOsName("arch")).toBe("Archlinux");
expect(GetOsName("opensuse-tumbleweed")).toBe("Opensuse");
expect(GetOsName("unknown")).toBe("Linux");
});
it("renders the Windows SVG icon", () => {
render(<MageMicrosoftWindows data-testid="windows-icon" />);
expect(screen.getByTestId("windows-icon")).toHaveAttribute(
"viewBox",
"0 0 24 24",
);
});
});