mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-09-07 08:27:12 +00:00
Make fabro install the only supported GitHub App setup path. This removes HTTP endpoints and browser routes that mutated local server config, rewrites /setup as an operator instructions page, and aligns the installer manifest with the live GitHub OAuth callback and setup URLs.
35 lines
1.1 KiB
TypeScript
35 lines
1.1 KiB
TypeScript
import { describe, expect, test } from "bun:test";
|
|
import type { RouteObject } from "react-router";
|
|
|
|
import { routes } from "./router";
|
|
|
|
function collectPaths(routeObjects: RouteObject[], prefix = ""): string[] {
|
|
return routeObjects.flatMap((route) => {
|
|
const path = route.index
|
|
? prefix || "/"
|
|
: route.path
|
|
? route.path.startsWith("/")
|
|
? route.path
|
|
: `${prefix}/${route.path}`.replace(/\/+/g, "/")
|
|
: prefix;
|
|
|
|
const childPaths = route.children ? collectPaths(route.children, path) : [];
|
|
return route.path || route.index ? [path, ...childPaths] : childPaths;
|
|
});
|
|
}
|
|
|
|
describe("browser router", () => {
|
|
test("uses /login for the sign-in page instead of the backend auth namespace", () => {
|
|
const paths = collectPaths(routes);
|
|
|
|
expect(paths).toContain("/login");
|
|
expect(paths).not.toContain("/auth/login");
|
|
});
|
|
|
|
test("exposes /setup but not the removed /setup/complete route", () => {
|
|
const paths = collectPaths(routes);
|
|
|
|
expect(paths).toContain("/setup");
|
|
expect(paths).not.toContain("/setup/complete");
|
|
});
|
|
});
|