one
Version:
One is a new React Framework that makes Vite serve both native and web.
68 lines (66 loc) • 4.28 kB
JavaScript
;
var import_vitest = require("vitest"),
import_cleanUrl = require("./cleanUrl.native.js");
function roundtrip(path) {
var loaderPath = (0, import_cleanUrl.getLoaderPath)(path, !1);
return (0, import_cleanUrl.getPathFromLoaderPath)(loaderPath);
}
(0, import_vitest.describe)("cleanUrl roundtrip", function () {
(0, import_vitest.it)("simple path", function () {
(0, import_vitest.expect)(roundtrip("/docs/getting-started")).toBe("/docs/getting-started");
}), (0, import_vitest.it)("path with underscore prefix (/_/docs)", function () {
(0, import_vitest.expect)(roundtrip("/_/docs/getting-started")).toBe("/_/docs/getting-started");
}), (0, import_vitest.it)("path with underscore prefix (/_/terms)", function () {
(0, import_vitest.expect)(roundtrip("/_/terms")).toBe("/_/terms");
}), (0, import_vitest.it)("path with underscore in segment name", function () {
(0, import_vitest.expect)(roundtrip("/my_page/test")).toBe("/my_page/test");
}), (0, import_vitest.it)("deeply nested path", function () {
(0, import_vitest.expect)(roundtrip("/deep/nested/path/here")).toBe("/deep/nested/path/here");
}), (0, import_vitest.it)("root path", function () {
(0, import_vitest.expect)(roundtrip("/")).toBe("/");
}), (0, import_vitest.it)("single segment", function () {
(0, import_vitest.expect)(roundtrip("/about")).toBe("/about");
}), (0, import_vitest.it)("path with query string is stripped", function () {
var loaderPath = (0, import_cleanUrl.getLoaderPath)("/docs/intro?foo=bar", !1);
(0, import_vitest.expect)((0, import_cleanUrl.getPathFromLoaderPath)(loaderPath)).toBe("/docs/intro");
}), (0, import_vitest.it)("path with hash is stripped", function () {
var loaderPath = (0, import_cleanUrl.getLoaderPath)("/docs/intro#section", !1);
(0, import_vitest.expect)((0, import_cleanUrl.getPathFromLoaderPath)(loaderPath)).toBe("/docs/intro");
}), (0, import_vitest.it)("path with trailing slash", function () {
var loaderPath = (0, import_cleanUrl.getLoaderPath)("/docs/intro/", !1);
(0, import_vitest.expect)((0, import_cleanUrl.getPathFromLoaderPath)(loaderPath)).toBe("/docs/intro");
});
});
(0, import_vitest.describe)("getLoaderPath format", function () {
(0, import_vitest.it)("includes /assets/ prefix", function () {
var result = (0, import_cleanUrl.getLoaderPath)("/docs/intro", !1);
(0, import_vitest.expect)(result).toMatch(/^\/assets\//);
}), (0, import_vitest.it)("ends with loader postfix", function () {
var result = (0, import_cleanUrl.getLoaderPath)("/docs/intro", !1);
(0, import_vitest.expect)(result).toMatch(/_\d+_vxrn_loader\.js$/);
}), (0, import_vitest.it)("includes /_one prefix in dev mode", function () {
var originalEnv = process.env.NODE_ENV;
process.env.NODE_ENV = "development";
try {
var result = (0, import_cleanUrl.getLoaderPath)("/docs/intro", !1);
(0, import_vitest.expect)(result).toMatch(/^\/_one\/assets\//);
} finally {
process.env.NODE_ENV = originalEnv;
}
}), (0, import_vitest.it)("includes cache bust segment", function () {
var result = (0, import_cleanUrl.getLoaderPath)("/docs/intro", !1, "12345");
(0, import_vitest.expect)(result).toContain("_refetch_12345_");
});
});
(0, import_vitest.describe)("getPathFromLoaderPath", function () {
(0, import_vitest.it)("strips /_one/assets prefix", function () {
(0, import_vitest.expect)((0, import_cleanUrl.getPathFromLoaderPath)("/_one/assets/docs_intro_999_vxrn_loader.js")).toBe("/docs/intro");
}), (0, import_vitest.it)("strips /assets prefix", function () {
(0, import_vitest.expect)((0, import_cleanUrl.getPathFromLoaderPath)("/assets/docs_intro_999_vxrn_loader.js")).toBe("/docs/intro");
}), (0, import_vitest.it)("strips refetch cache bust", function () {
(0, import_vitest.expect)((0, import_cleanUrl.getPathFromLoaderPath)("/assets/docs_intro_refetch_12345__999_vxrn_loader.js")).toBe("/docs/intro");
}), (0, import_vitest.it)("decodes escaped underscores back to literal underscores", function () {
(0, import_vitest.expect)((0, import_cleanUrl.getPathFromLoaderPath)("/assets/___docs_intro_999_vxrn_loader.js")).toBe("/_/docs/intro");
});
});
//# sourceMappingURL=cleanUrl.test.native.js.map