UNPKG

one

Version:

One is a new React Framework that makes Vite serve both native and web.

107 lines (105 loc) 3.7 kB
"use strict"; var import_vitest = require("vitest"); var import_cleanUrl = require("../utils/cleanUrl.native.js"); var import_getRouteArtifactPath = require("./getRouteArtifactPath.native.js"); function routeNode(route, contextKey) { var children = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : [], type = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : children.length ? "layout" : "spa"; return { type, loadRoute: function () { return {}; }, children, dynamic: null, route, contextKey }; } (0, import_vitest.describe)("getRouteArtifactPath", function () { (0, import_vitest.test)("uses the emitted route pattern for a concrete dynamic href", function () { var page = routeNode("[serverId]/[channelId]/index", "./(chat)/[serverId]/[channelId]/index+spa.tsx"); var chat = routeNode("(chat)", "./(chat)/_layout.tsx", [page]); var root = routeNode("", "./_layout.tsx", [chat]); var linking = { config: { screens: {} }, getStateFromPath: function () { return { routes: [{ name: "(chat)", state: { routes: [{ name: "[serverId]/[channelId]/index" }] } }] }; } }; var artifactPaths = (0, import_getRouteArtifactPath.getRouteArtifactPaths)("/acme/general?message=message-1&thread=thread-1", linking, root); (0, import_vitest.expect)(artifactPaths).toEqual({ loader: "/:serverId/:channelId/", preload: "/:serverId/:channelId/" }); (0, import_vitest.expect)((0, import_cleanUrl.getPreloadPath)(artifactPaths.preload)).toMatch(/\/assets\/=3aserverId_=3achannelId_\d+_preload\.js$/); }); (0, import_vitest.test)("keeps the href when the router cannot resolve a route", function () { var root = routeNode("", "./_layout.tsx"); var href = "/unknown?from=test"; (0, import_vitest.expect)((0, import_getRouteArtifactPath.getRouteArtifactPaths)(href, { config: { screens: {} }, getStateFromPath: function () { return void 0; } }, root)).toEqual({ loader: href, preload: href }); }); (0, import_vitest.test)("uses concrete artifacts for a route that inherits spa mode", function () { var page = routeNode("default-mode/[slug]", "./default-mode/[slug].tsx", [], "spa"); var root = routeNode("", "./_layout.tsx", [page]); (0, import_vitest.expect)((0, import_getRouteArtifactPath.getRouteArtifactPaths)("/default-mode/page-one", { config: { screens: {} }, getStateFromPath: function () { return { routes: [{ name: "default-mode/[slug]" }] }; } }, root)).toEqual({ loader: "/default-mode/page-one", preload: "/default-mode/page-one" }); }); import_vitest.test.each([["ssg", { loader: "/blog/intro?from=test", preload: "/blog/intro?from=test" }], ["ssr", { loader: "/blog/intro?from=test", preload: "/blog/:slug" }]])("keeps %s artifacts on their build-time paths", function (type, expected) { var page = routeNode("blog/[slug]", "./blog/[slug].tsx", [], type); var root = routeNode("", "./_layout.tsx", [page]); (0, import_vitest.expect)((0, import_getRouteArtifactPath.getRouteArtifactPaths)("/blog/intro?from=test", { config: { screens: {} }, getStateFromPath: function () { return { routes: [{ name: "blog/[slug]" }] }; } }, root)).toEqual(expected); }); }); //# sourceMappingURL=getRouteArtifactPath.test.native.js.map