UNPKG

one

Version:

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

51 lines 2.26 kB
var import_node_fs = require("node:fs"); var import_node_os = require("node:os"); var import_node_path = require("node:path"); var import_vitest = require("vitest"); var import_routeIndex = require("./routeIndex.cjs"); let testDir; function writeRoute(relativePath) { testDir ||= (0, import_node_fs.mkdtempSync)((0, import_node_path.join)((0, import_node_os.tmpdir)(), "one-route-index-")); const filePath = (0, import_node_path.join)(testDir, "app", relativePath); (0, import_node_fs.mkdirSync)((0, import_node_path.dirname)(filePath), { recursive: true }); (0, import_node_fs.writeFileSync)(filePath, "export default function Route() { return null }"); return filePath; } (0, import_vitest.afterEach)(() => { if (testDir) { (0, import_node_fs.rmSync)(testDir, { recursive: true, force: true }); testDir = void 0; } }); (0, import_vitest.describe)(import_routeIndex.createRouteIndex, () => { (0, import_vitest.it)("scans and filters the route tree once", () => { writeRoute("index.tsx"); writeRoute("nested/page.ts"); writeRoute("nested/page.test.tsx"); writeRoute("routes.d.ts"); const routeIndex = (0, import_routeIndex.createRouteIndex)({ routerRoot: (0, import_node_path.join)(testDir, "app"), ignoredRouteFiles: ["**/*.test.*"] }); (0, import_vitest.expect)(routeIndex.getPaths()).toEqual(["./index.tsx", "./nested/page.ts"]); }); (0, import_vitest.it)("updates route membership from watcher events", () => { writeRoute("index.tsx"); const routeIndex = (0, import_routeIndex.createRouteIndex)({ routerRoot: (0, import_node_path.join)(testDir, "app"), ignoredRouteFiles: ["**/*.test.*"] }); const addedRoute = writeRoute("nested/new.tsx"); const ignoredRoute = writeRoute("nested/new.test.tsx"); (0, import_vitest.expect)(routeIndex.update("add", addedRoute)).toBe(true); (0, import_vitest.expect)(routeIndex.update("add", ignoredRoute)).toBe(false); (0, import_vitest.expect)(routeIndex.getPaths()).toEqual(["./index.tsx", "./nested/new.tsx"]); (0, import_vitest.expect)(routeIndex.update("unlink", addedRoute)).toBe(true); (0, import_vitest.expect)(routeIndex.getPaths()).toEqual(["./index.tsx"]); }); });