one
Version:
One is a new React Framework that makes Vite serve both native and web.
51 lines • 2.26 kB
JavaScript
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"]);
});
});