elm-pages-v3-beta/generator/test/route-sorting.js
2021-04-28 12:57:16 -07:00

49 lines
1.2 KiB
JavaScript

var assert = require("assert");
const { sortTemplates } = require("../src/generate-template-module-connector");
describe("sort", function () {
it("purely static comes before dynamic routes", function () {
assert.deepStrictEqual(
sortTemplates([
["Post", "Create"],
["Post", "Slug_"],
]),
[
["Post", "Create"],
["Post", "Slug_"],
]
);
});
it("more static segments breaks ties for same number of dynamic segments", function () {
assert.deepStrictEqual(
sortTemplates([
["Repo_", "User_"],
["Project", "New"],
]),
[
["Project", "New"],
["Repo_", "User_"],
]
);
});
it("splats come last", function () {
assert.deepStrictEqual(
sortTemplates([
["SPLAT_"],
["Repo", "Username_", "Project_"],
["Project", "New"],
]),
[["Project", "New"], ["Repo", "Username_", "Project_"], ["SPLAT_"]]
);
});
it("purely static comes before route with optional param", function () {
assert.deepStrictEqual(
sortTemplates([["Docs"], ["Docs", "Section__"]]),
[["Docs"], ["Docs", "Section__"]]
);
});
});