nimiq-vitepress-theme
Version:
Nimiq UI theme for VitePress
34 lines (33 loc) • 1.18 kB
JavaScript
import { useData, useRoute } from "vitepress";
import { describe, expect, it, vi } from "vitest";
import { useCurrentModule } from "../useCurrentModule.mjs";
vi.mock("vitepress", () => ({
useData: vi.fn(),
useRoute: vi.fn(),
withBase: (p) => `/base${p}`
}));
vi.mock("@vueuse/core", () => ({
createSharedComposable: (fn) => fn
}));
describe("useCurrentModule", () => {
it("should select first matching module based on route.path", () => {
const modules = [
{ text: "A", subpath: "a" },
{ text: "B", subpath: "b" }
];
useData.mockReturnValue({ theme: { value: { modules } } });
useRoute.mockReturnValue({ path: "/base/b/page" });
const { currentDocModule } = useCurrentModule();
expect(currentDocModule.value).toEqual(modules[1]);
});
it("should fall back to first module if none match", () => {
const modules = [
{ text: "X", subpath: "x" },
{ text: "Y", subpath: "y" }
];
useData.mockReturnValue({ theme: { value: { modules } } });
useRoute.mockReturnValue({ path: "/other/path" });
const { currentDocModule } = useCurrentModule();
expect(currentDocModule.value).toEqual(modules[0]);
});
});