UNPKG

starlight-view-modes

Version:

Starlight plugin adding view mode capabilities to your documentation website.

558 lines (484 loc) 26.2 kB
import { describe, expect, vi, afterEach, test } from "vitest"; function mockStarlightConfig(config: any) { vi.doMock("virtual:starlight/user-config", () => ({ default: config, })); } function mockAstroConfigBase(base: string = "", trailingSlash: "never" | "always" | "ignore" = "ignore") { vi.doMock("virtual:starlight-view-modes-context", () => ({ default: { base, trailingSlash: trailingSlash }, })); } function mockConfig() { vi.doMock("virtual:starlight-view-modes-config", () => ({ default: { zenModeSettings: { exclude: [], keyboardShortcut: [], }, }, })); } async function importUtils() { return (await import("../libs/utils")); } afterEach(() => { vi.resetModules(); vi.resetAllMocks(); }); describe("getCurrentModeFromPath", () => { test("returns 'default' when no mode is present", async () => { mockAstroConfigBase(""); mockConfig(); mockStarlightConfig({ defaultLocale: { locale: "root", lang: "en" }, locales: {root: {}}, }); const getCurrentModeFromPath = (await importUtils()).getCurrentModeFromPath; expect(await getCurrentModeFromPath("/docs")).toBe("default"); expect(await getCurrentModeFromPath("/docs/intro")).toBe("default"); expect(await getCurrentModeFromPath("/")).toBe("default"); }); test("returns 'default' when no mode is present; with locales", async () => { mockAstroConfigBase(""); mockConfig(); mockStarlightConfig({ defaultLocale: { locale: "en", lang: "en" }, locales: { en: {}, de: {}, fr: {} }, }); const getCurrentModeFromPath = (await importUtils()).getCurrentModeFromPath; expect(await getCurrentModeFromPath("/docs")).toBe("default"); expect(await getCurrentModeFromPath("/en/docs")).toBe("default"); expect(await getCurrentModeFromPath("/de/docs")).toBe("default"); expect(await getCurrentModeFromPath("/fr/docs")).toBe("default"); expect(await getCurrentModeFromPath("/ru/docs")).toBe("default"); // Russian is not configured as a locale expect(await getCurrentModeFromPath("/docs/intro")).toBe("default"); expect(await getCurrentModeFromPath("/en/docs/intro")).toBe("default"); expect(await getCurrentModeFromPath("/de/docs/intro")).toBe("default"); expect(await getCurrentModeFromPath("/fr/docs/intro")).toBe("default"); expect(await getCurrentModeFromPath("/ru/docs/intro")).toBe("default"); // Russian is not configured as a locale expect(await getCurrentModeFromPath("/")).toBe("default"); expect(await getCurrentModeFromPath("/en/")).toBe("default"); expect(await getCurrentModeFromPath("/de/")).toBe("default"); expect(await getCurrentModeFromPath("/fr/")).toBe("default"); expect(await getCurrentModeFromPath("/ru/")).toBe("default"); // Russian is not configured as a locale }); test("returns the correct mode when a mode is present", async () => { mockAstroConfigBase(""); mockConfig(); mockStarlightConfig({ defaultLocale: { locale: "root", lang: "en" }, locales: {root: {}}, }); const getCurrentModeFromPath = (await importUtils()).getCurrentModeFromPath; expect(await getCurrentModeFromPath("/zen-mode/intro")).toBe("zen-mode"); }); test("returns the correct mode when a mode is present; with locales", async () => { mockAstroConfigBase(""); mockConfig(); mockStarlightConfig({ defaultLocale: { locale: "en", lang: "en" }, locales: { en: {}, de: {}, fr: {} }, }); const getCurrentModeFromPath = (await importUtils()).getCurrentModeFromPath; expect(await getCurrentModeFromPath("/zen-mode/intro")).toBe("zen-mode"); expect(await getCurrentModeFromPath("/en/zen-mode/intro")).toBe("zen-mode"); expect(await getCurrentModeFromPath("/de/zen-mode/intro")).toBe("zen-mode"); expect(await getCurrentModeFromPath("/fr/zen-mode/intro")).toBe("zen-mode"); expect(await getCurrentModeFromPath("/ru/zen-mode/intro")).toBe("default"); // Russian is not configured as a locale }); test("returns 'default' when the mode is not in AVAILABLE_MODES", async () => { mockAstroConfigBase(""); mockConfig(); mockStarlightConfig({ defaultLocale: { locale: "root", lang: "en" }, locales: {root: {}}, }); const getCurrentModeFromPath = (await importUtils()).getCurrentModeFromPath; expect(await getCurrentModeFromPath("/invalid-mode/intro")).toBe("default"); }); test("returns 'default' when the mode is not in AVAILABLE_MODES; with locales", async () => { mockAstroConfigBase(""); mockConfig(); mockStarlightConfig({ defaultLocale: { locale: "en", lang: "en" }, locales: { en: {}, de: {}, fr: {} }, }); const getCurrentModeFromPath = (await importUtils()).getCurrentModeFromPath; expect(await getCurrentModeFromPath("/invalid-mode/intro")).toBe("default"); expect(await getCurrentModeFromPath("/en/invalid-mode/intro")).toBe("default"); expect(await getCurrentModeFromPath("/de/invalid-mode/intro")).toBe("default"); expect(await getCurrentModeFromPath("/fr/invalid-mode/intro")).toBe("default"); expect(await getCurrentModeFromPath("/ru/invalid-mode/intro")).toBe("default"); // Russian is not configured as a locale }); test("handles cases where base is '/docs'", async () => { mockAstroConfigBase("/docs"); mockConfig(); mockStarlightConfig({ defaultLocale: { locale: "root", lang: "en" }, locales: {root: {}}, }); const getCurrentModeFromPath = (await importUtils()).getCurrentModeFromPath; expect(await getCurrentModeFromPath("/docs/intro")).toBe("default"); expect(await getCurrentModeFromPath("/docs/zen-mode/intro")).toBe( "zen-mode" ); }); test("handles cases where base is '/docs'; with locales", async () => { mockAstroConfigBase("/docs"); mockConfig(); mockStarlightConfig({ defaultLocale: { locale: "en", lang: "en" }, locales: { en: {}, de: {}, fr: {} }, }); const getCurrentModeFromPath = (await importUtils()).getCurrentModeFromPath; expect(await getCurrentModeFromPath("/docs/intro")).toBe("default"); expect(await getCurrentModeFromPath("/docs/en/intro")).toBe("default"); expect(await getCurrentModeFromPath("/docs/de/intro")).toBe("default"); expect(await getCurrentModeFromPath("/docs/fr/intro")).toBe("default"); expect(await getCurrentModeFromPath("/docs/ru/intro")).toBe("default"); // Russian is not configured as a locale expect(await getCurrentModeFromPath("/docs/zen-mode/intro")).toBe( "zen-mode" ); expect(await getCurrentModeFromPath("/docs/en/zen-mode/intro")).toBe( "zen-mode" ); expect(await getCurrentModeFromPath("/docs/de/zen-mode/intro")).toBe( "zen-mode" ); expect(await getCurrentModeFromPath("/docs/fr/zen-mode/intro")).toBe( "zen-mode" ); expect(await getCurrentModeFromPath("/docs/ru/zen-mode/intro")).toBe( "default" ); // Russian is not configured as a locale }); test("returns 'default' when the base is wrong", async () => { mockAstroConfigBase("/docs"); mockConfig(); mockStarlightConfig({ defaultLocale: { locale: "root", lang: "en" }, locales: {root: {}}, }); const getCurrentModeFromPath = (await importUtils()).getCurrentModeFromPath; expect(await getCurrentModeFromPath("/notdocs/zen-mode/intro")).toBe( "default" ); }); test("returns 'default' when the base is wrong; with locales", async () => { mockAstroConfigBase("/docs"); mockConfig(); mockStarlightConfig({ defaultLocale: { locale: "en", lang: "en" }, locales: { en: {}, de: {}, fr: {} }, }); const getCurrentModeFromPath = (await importUtils()).getCurrentModeFromPath; expect(await getCurrentModeFromPath("/notdocs/zen-mode/intro")).toBe( "default" ); expect(await getCurrentModeFromPath("/notdocs/en/zen-mode/intro")).toBe( "default" ); expect(await getCurrentModeFromPath("/notdocs/de/zen-mode/intro")).toBe( "default" ); expect(await getCurrentModeFromPath("/notdocs/fr/zen-mode/intro")).toBe( "default" ); expect(await getCurrentModeFromPath("/notdocs/ru/zen-mode/intro")).toBe( "default" ); // Russian is not configured as a locale }); test("handles trailing and leading slashes correctly", async () => { mockAstroConfigBase("/docs"); mockConfig(); mockStarlightConfig({ defaultLocale: { locale: "root", lang: "en" }, locales: {root: {}}, }); const getCurrentModeFromPath = (await importUtils()).getCurrentModeFromPath; expect(await getCurrentModeFromPath("/docs/zen-mode/")).toBe("zen-mode"); expect(await getCurrentModeFromPath("/docs/zen-mode")).toBe("zen-mode"); }); test("handles trailing and leading slashes correctly; with locales", async () => { mockAstroConfigBase("/docs"); mockConfig(); mockStarlightConfig({ defaultLocale: { locale: "en", lang: "en" }, locales: { en: {}, de: {}, fr: {} }, }); const getCurrentModeFromPath = (await importUtils()).getCurrentModeFromPath; expect(await getCurrentModeFromPath("/docs/zen-mode/")).toBe("zen-mode"); expect(await getCurrentModeFromPath("/docs/en/zen-mode/")).toBe("zen-mode"); expect(await getCurrentModeFromPath("/docs/de/zen-mode/")).toBe("zen-mode"); expect(await getCurrentModeFromPath("/docs/fr/zen-mode/")).toBe("zen-mode"); expect(await getCurrentModeFromPath("/docs/ru/zen-mode/")).toBe("default"); // Russian is not configured as a locale expect(await getCurrentModeFromPath("/docs/zen-mode")).toBe("zen-mode"); expect(await getCurrentModeFromPath("/docs/en/zen-mode")).toBe("zen-mode"); expect(await getCurrentModeFromPath("/docs/de/zen-mode")).toBe("zen-mode"); expect(await getCurrentModeFromPath("/docs/fr/zen-mode")).toBe("zen-mode"); expect(await getCurrentModeFromPath("/docs/ru/zen-mode")).toBe("default"); // Russian is not configured as a locale }); test("returns 'default' when the mode is not at the start of the slug", async () => { mockAstroConfigBase("/docs"); mockConfig(); mockStarlightConfig({ defaultLocale: { locale: "root", lang: "en" }, locales: {root: {}}, }); const getCurrentModeFromPath = (await importUtils()).getCurrentModeFromPath; expect(await getCurrentModeFromPath("/docs/intro/zen-mode")).toBe( "default" ); }); test("returns 'default' when the mode is not at the start of the slug; with locales", async () => { mockAstroConfigBase("/docs"); mockConfig(); mockStarlightConfig({ defaultLocale: { locale: "en", lang: "en" }, locales: { en: {}, de: {}, fr: {} }, }); const getCurrentModeFromPath = (await importUtils()).getCurrentModeFromPath; expect(await getCurrentModeFromPath("/docs/intro/zen-mode")).toBe( "default" ); expect(await getCurrentModeFromPath("/docs/en/intro/zen-mode")).toBe( "default" ); expect(await getCurrentModeFromPath("/docs/de/intro/zen-mode")).toBe( "default" ); expect(await getCurrentModeFromPath("/docs/fr/intro/zen-mode")).toBe( "default" ); expect(await getCurrentModeFromPath("/docs/ru/intro/zen-mode")).toBe( "default" ); // Russian is not configured as a locale }); }); describe("insertModePathname", () => { test("should work with base set to ''", async () => { mockAstroConfigBase(); mockConfig(); mockStarlightConfig({ defaultLocale: { locale: "root", lang: "en" }, locales: {root: {}}, }); const insertModePathname = (await importUtils()).insertModePathname; expect(insertModePathname("/page/", "dark")).toBe("/dark/page/"); expect(insertModePathname("/page", "dark")).toBe("/dark/page"); expect(insertModePathname("page/", "dark")).toBe("dark/page/"); expect(insertModePathname("page", "dark")).toBe("dark/page"); expect(insertModePathname("/", "dark")).toBe("/dark/"); expect(insertModePathname("", "dark")).toBe("dark/"); }); test("should work with base set to ''; with locales", async () => { mockAstroConfigBase(); mockConfig(); mockStarlightConfig({ defaultLocale: { locale: "en", lang: "en" }, locales: { en: {}, de: {}, fr: {} }, }); const insertModePathname = (await importUtils()).insertModePathname; expect(insertModePathname("/page/", "dark")).toBe("/dark/page/"); expect(insertModePathname("/en/page/", "dark")).toBe("/en/dark/page/"); expect(insertModePathname("/de/page/", "dark")).toBe("/de/dark/page/"); expect(insertModePathname("/fr/page/", "dark")).toBe("/fr/dark/page/"); expect(insertModePathname("/ru/page/", "dark")).toBe("/dark/ru/page/"); // Russian is not configured as a locale expect(insertModePathname("/page", "dark")).toBe("/dark/page"); expect(insertModePathname("/en/page", "dark")).toBe("/en/dark/page"); expect(insertModePathname("/de/page", "dark")).toBe("/de/dark/page"); expect(insertModePathname("/fr/page", "dark")).toBe("/fr/dark/page"); expect(insertModePathname("/ru/page", "dark")).toBe("/dark/ru/page"); // Russian is not configured as a locale expect(insertModePathname("page/", "dark")).toBe("dark/page/"); expect(insertModePathname("en/page/", "dark")).toBe("en/dark/page/"); expect(insertModePathname("de/page/", "dark")).toBe("de/dark/page/"); expect(insertModePathname("fr/page/", "dark")).toBe("fr/dark/page/"); expect(insertModePathname("ru/page/", "dark")).toBe("dark/ru/page/"); // Russian is not configured as a locale expect(insertModePathname("page", "dark")).toBe("dark/page"); expect(insertModePathname("en/page", "dark")).toBe("en/dark/page"); expect(insertModePathname("de/page", "dark")).toBe("de/dark/page"); expect(insertModePathname("fr/page", "dark")).toBe("fr/dark/page"); expect(insertModePathname("ru/page", "dark")).toBe("dark/ru/page"); // Russian is not configured as a locale expect(insertModePathname("/", "dark")).toBe("/dark/"); expect(insertModePathname("en/", "dark")).toBe("en/dark/"); expect(insertModePathname("de/", "dark")).toBe("de/dark/"); expect(insertModePathname("fr/", "dark")).toBe("fr/dark/"); expect(insertModePathname("ru/", "dark")).toBe("dark/ru/"); // Russian is not configured as a locale expect(insertModePathname("/en", "dark")).toBe("/en/dark"); expect(insertModePathname("/de", "dark")).toBe("/de/dark"); expect(insertModePathname("/fr", "dark")).toBe("/fr/dark"); expect(insertModePathname("/ru", "dark")).toBe("/dark/ru"); // Russian is not configured as a locale expect(insertModePathname("", "dark")).toBe("dark/"); expect(insertModePathname("en", "dark")).toBe("en/dark"); expect(insertModePathname("de", "dark")).toBe("de/dark"); expect(insertModePathname("fr", "dark")).toBe("fr/dark"); expect(insertModePathname("ru", "dark")).toBe("dark/ru"); // Russian is not configured as a locale }); test("should work with base set to '/docs'", async () => { mockAstroConfigBase("/docs"); mockConfig(); mockStarlightConfig({ defaultLocale: { locale: "root", lang: "en" }, locales: {root: {}}, }); const insertModePathname = (await importUtils()).insertModePathname; expect(insertModePathname("/docs/page/", "dark")).toBe("/docs/dark/page/"); expect(insertModePathname("/docs/page", "dark")).toBe("/docs/dark/page"); expect(insertModePathname("docs/page/", "dark")).toBe("docs/dark/page/"); expect(insertModePathname("docs/page", "dark")).toBe("docs/dark/page"); expect(insertModePathname("docs/", "dark")).toBe("docs/dark/"); expect(insertModePathname("docs", "dark")).toBe("docs/dark"); }); test("should work with base set to '/docs'; with locales", async () => { mockAstroConfigBase("/docs"); mockConfig(); mockStarlightConfig({ defaultLocale: { locale: "en", lang: "en" }, locales: { en: {}, de: {}, fr: {} }, }); const insertModePathname = (await importUtils()).insertModePathname; expect(insertModePathname("/docs/page/", "dark")).toBe("/docs/dark/page/"); expect(insertModePathname("/docs/en/page/", "dark")).toBe("/docs/en/dark/page/"); expect(insertModePathname("/docs/de/page/", "dark")).toBe("/docs/de/dark/page/"); expect(insertModePathname("/docs/fr/page/", "dark")).toBe("/docs/fr/dark/page/"); expect(insertModePathname("/docs/ru/page/", "dark")).toBe("/docs/dark/ru/page/"); // Russian is not configured as a locale expect(insertModePathname("/docs/page", "dark")).toBe("/docs/dark/page"); expect(insertModePathname("/docs/en/page", "dark")).toBe("/docs/en/dark/page"); expect(insertModePathname("/docs/de/page", "dark")).toBe("/docs/de/dark/page"); expect(insertModePathname("/docs/fr/page", "dark")).toBe("/docs/fr/dark/page"); expect(insertModePathname("/docs/ru/page", "dark")).toBe("/docs/dark/ru/page"); // Russian is not configured as a locale expect(insertModePathname("docs/page/", "dark")).toBe("docs/dark/page/"); expect(insertModePathname("docs/en/page/", "dark")).toBe("docs/en/dark/page/"); expect(insertModePathname("docs/de/page/", "dark")).toBe("docs/de/dark/page/"); expect(insertModePathname("docs/fr/page/", "dark")).toBe("docs/fr/dark/page/"); expect(insertModePathname("docs/ru/page/", "dark")).toBe("docs/dark/ru/page/"); // Russian is not configured as a locale expect(insertModePathname("docs/page", "dark")).toBe("docs/dark/page"); expect(insertModePathname("docs/en/page", "dark")).toBe("docs/en/dark/page"); expect(insertModePathname("docs/de/page", "dark")).toBe("docs/de/dark/page"); expect(insertModePathname("docs/fr/page", "dark")).toBe("docs/fr/dark/page"); expect(insertModePathname("docs/ru/page", "dark")).toBe("docs/dark/ru/page"); // Russian is not configured as a locale expect(insertModePathname("docs/", "dark")).toBe("docs/dark/"); expect(insertModePathname("docs/en/", "dark")).toBe("docs/en/dark/"); expect(insertModePathname("docs/de/", "dark")).toBe("docs/de/dark/"); expect(insertModePathname("docs/fr/", "dark")).toBe("docs/fr/dark/"); expect(insertModePathname("docs/ru/", "dark")).toBe("docs/dark/ru/"); // Russian is not configured as a locale expect(insertModePathname("docs", "dark")).toBe("docs/dark"); expect(insertModePathname("docs/en", "dark")).toBe("docs/en/dark"); expect(insertModePathname("docs/de", "dark")).toBe("docs/de/dark"); expect(insertModePathname("docs/fr", "dark")).toBe("docs/fr/dark"); expect(insertModePathname("docs/ru", "dark")).toBe("docs/dark/ru"); // Russian is not configured as a locale }); test("should work with base set to '', appending 'default' mode returns same pathname", async () => { mockAstroConfigBase(); mockConfig(); mockStarlightConfig({ defaultLocale: { locale: "root", lang: "en" }, locales: {root: {}}, }); const insertModePathname = (await importUtils()).insertModePathname; expect(insertModePathname("/page/", "default")).toBe("/page/"); expect(insertModePathname("/page", "default")).toBe("/page"); expect(insertModePathname("page/", "default")).toBe("page/"); expect(insertModePathname("page", "default")).toBe("page"); expect(insertModePathname("/", "default")).toBe("/"); expect(insertModePathname("", "default")).toBe(""); }); test("should work with base set to '', appending 'default' mode returns same pathname; with locales", async () => { mockAstroConfigBase(); mockConfig(); mockStarlightConfig({ defaultLocale: { locale: "en", lang: "en" }, locales: { en: {}, de: {}, fr: {} }, }); const insertModePathname = (await importUtils()).insertModePathname; expect(insertModePathname("/page/", "default")).toBe("/page/"); expect(insertModePathname("/en/page/", "default")).toBe("/en/page/"); expect(insertModePathname("/de/page/", "default")).toBe("/de/page/"); expect(insertModePathname("/fr/page/", "default")).toBe("/fr/page/"); expect(insertModePathname("/ru/page/", "default")).toBe("/ru/page/"); // Russian is not configured as a locale expect(insertModePathname("/page", "default")).toBe("/page"); expect(insertModePathname("/en/page", "default")).toBe("/en/page"); expect(insertModePathname("/de/page", "default")).toBe("/de/page"); expect(insertModePathname("/fr/page", "default")).toBe("/fr/page"); expect(insertModePathname("/ru/page", "default")).toBe("/ru/page"); // Russian is not configured as a locale expect(insertModePathname("page/", "default")).toBe("page/"); expect(insertModePathname("en/page/", "default")).toBe("en/page/"); expect(insertModePathname("de/page/", "default")).toBe("de/page/"); expect(insertModePathname("fr/page/", "default")).toBe("fr/page/"); expect(insertModePathname("ru/page/", "default")).toBe("ru/page/"); // Russian is not configured as a locale expect(insertModePathname("page", "default")).toBe("page"); expect(insertModePathname("en/page", "default")).toBe("en/page"); expect(insertModePathname("de/page", "default")).toBe("de/page"); expect(insertModePathname("fr/page", "default")).toBe("fr/page"); expect(insertModePathname("ru/page", "default")).toBe("ru/page"); // Russian is not configured as a locale expect(insertModePathname("/", "default")).toBe("/"); expect(insertModePathname("en/", "default")).toBe("en/"); expect(insertModePathname("de/", "default")).toBe("de/"); expect(insertModePathname("fr/", "default")).toBe("fr/"); expect(insertModePathname("ru/", "default")).toBe("ru/"); // Russian is not configured as a locale expect(insertModePathname("/en", "default")).toBe("/en"); expect(insertModePathname("/de", "default")).toBe("/de"); expect(insertModePathname("/fr", "default")).toBe("/fr"); expect(insertModePathname("/ru", "default")).toBe("/ru"); // Russian is not configured as a locale expect(insertModePathname("", "default")).toBe(""); expect(insertModePathname("en", "default")).toBe("en"); expect(insertModePathname("de", "default")).toBe("de"); expect(insertModePathname("fr", "default")).toBe("fr"); expect(insertModePathname("ru", "default")).toBe("ru"); // Russian is not configured as a locale }); test("should work with base set to '/docs', appending 'default' mode returns same pathname", async () => { mockAstroConfigBase("/docs"); mockConfig(); mockStarlightConfig({ defaultLocale: { locale: "root", lang: "en" }, locales: {root: {}}, }); const insertModePathname = (await importUtils()).insertModePathname; expect(insertModePathname("/docs/page/", "default")).toBe("/docs/page/"); expect(insertModePathname("/docs/page", "default")).toBe("/docs/page"); expect(insertModePathname("docs/page/", "default")).toBe("docs/page/"); expect(insertModePathname("docs/page", "default")).toBe("docs/page"); expect(insertModePathname("docs/", "default")).toBe("docs/"); expect(insertModePathname("docs", "default")).toBe("docs"); }); test("should work with base set to '/docs', appending 'default' mode returns same pathname; with locales", async () => { mockAstroConfigBase("/docs"); mockConfig(); mockStarlightConfig({ defaultLocale: { locale: "en", lang: "en" }, locales: { en: {}, de: {}, fr: {} }, }); const insertModePathname = (await importUtils()).insertModePathname; expect(insertModePathname("/docs/page/", "default")).toBe("/docs/page/"); expect(insertModePathname("/docs/en/page/", "default")).toBe("/docs/en/page/"); expect(insertModePathname("/docs/de/page/", "default")).toBe("/docs/de/page/"); expect(insertModePathname("/docs/fr/page/", "default")).toBe("/docs/fr/page/"); expect(insertModePathname("/docs/ru/page/", "default")).toBe("/docs/ru/page/"); // Russian is not configured as a locale expect(insertModePathname("/docs/page", "default")).toBe("/docs/page"); expect(insertModePathname("/docs/en/page", "default")).toBe("/docs/en/page"); expect(insertModePathname("/docs/de/page", "default")).toBe("/docs/de/page"); expect(insertModePathname("/docs/fr/page", "default")).toBe("/docs/fr/page"); expect(insertModePathname("/docs/ru/page", "default")).toBe("/docs/ru/page"); // Russian is not configured as a locale expect(insertModePathname("docs/page/", "default")).toBe("docs/page/"); expect(insertModePathname("docs/en/page/", "default")).toBe("docs/en/page/"); expect(insertModePathname("docs/de/page/", "default")).toBe("docs/de/page/"); expect(insertModePathname("docs/fr/page/", "default")).toBe("docs/fr/page/"); expect(insertModePathname("docs/ru/page/", "default")).toBe("docs/ru/page/"); // Russian is not configured as a locale expect(insertModePathname("docs/page", "default")).toBe("docs/page"); expect(insertModePathname("docs/en/page", "default")).toBe("docs/en/page"); expect(insertModePathname("docs/de/page", "default")).toBe("docs/de/page"); expect(insertModePathname("docs/fr/page", "default")).toBe("docs/fr/page"); expect(insertModePathname("docs/ru/page", "default")).toBe("docs/ru/page"); // Russian is not configured as a locale expect(insertModePathname("docs/", "default")).toBe("docs/"); expect(insertModePathname("docs/en/", "default")).toBe("docs/en/"); expect(insertModePathname("docs/de/", "default")).toBe("docs/de/"); expect(insertModePathname("docs/fr/", "default")).toBe("docs/fr/"); expect(insertModePathname("docs/ru/", "default")).toBe("docs/ru/"); // Russian is not configured as a locale expect(insertModePathname("docs", "default")).toBe("docs"); expect(insertModePathname("docs/en", "default")).toBe("docs/en"); expect(insertModePathname("docs/de", "default")).toBe("docs/de"); expect(insertModePathname("docs/fr", "default")).toBe("docs/fr"); expect(insertModePathname("docs/ru", "default")).toBe("docs/ru"); // Russian is not configured as a locale }); });