Page MenuHomeSealhub

generate-routes.test.ts
No OneTemporary

generate-routes.test.ts

import { generateURL, sortRoutes } from "./generate-routes.js";
import { formatWithPrettier } from "./utils/prettier.js";
import assert from "node:assert";
describe("generate routes", () => {
it("handles a url with params", async () => {
assert.strictEqual(
await formatWithPrettier(generateURL("EditUser", "/admin/users/:id/edit/")),
await formatWithPrettier(
`export const EditUserURL = (id: string) => \`/admin/users/\${id}/edit/\`;
EditUserURL.params = ["id"];
EditUserURL.rawURL = "/admin/users/:id/edit/";`
)
);
});
it("handles polish characters in the url", () => {
assert.strictEqual(
generateURL("Users", "/admin/użytkownicy/"),
`export const UsersURL = "/admin/u%C5%BCytkownicy/";`
);
});
it("handles a url with params and diacritics", async () => {
assert.strictEqual(
await formatWithPrettier(generateURL("EditUser", "/admin/użytkownicy/:id/edit/")),
await formatWithPrettier(
`export const EditUserURL = (id: string) => \`/admin/u%C5%BCytkownicy/\${id}/edit/\`;
EditUserURL.params = ["id"];
EditUserURL.rawURL = "/admin/u%C5%BCytkownicy/:id/edit/";`
)
);
});
it("sorts routes from most specific first to least specific last, considering directory structure", () => {
assert.deepStrictEqual(
sortRoutes(
[
"/home",
"/foo/:bar/:baz",
"/:param1/:param2/:param3",
"/foo/bar/baz",
"/foo/:bar",
"/:param1",
].map((url) => ({
url,
}))
).map(({ url }: { url: string }) => url),
[
"/home",
"/:param1",
"/foo/:bar",
"/foo/bar/baz",
"/foo/:bar/:baz",
"/:param1/:param2/:param3",
]
);
});
});

File Metadata

Mime Type
text/x-java
Expires
Sat, Oct 11, 06:22 (4 h, 50 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
980164
Default Alt Text
generate-routes.test.ts (1 KB)

Event Timeline