one
Version:
One is a new React Framework that makes Vite serve both native and web.
62 lines • 3.58 kB
JavaScript
var import_vitest = require("vitest");
var import_path = require("./path.cjs");
const originalBaseUrl = process.env.EXPO_BASE_URL;
const originalNodeEnv = process.env.NODE_ENV;
(0, import_vitest.afterEach)(() => {
if (originalBaseUrl === void 0) {
delete process.env.EXPO_BASE_URL;
} else {
process.env.EXPO_BASE_URL = originalBaseUrl;
}
if (originalNodeEnv === void 0) {
delete process.env.NODE_ENV;
} else {
process.env.NODE_ENV = originalNodeEnv;
}
});
(0, import_vitest.describe)("hasLostDynamicSegment", () => {
(0, import_vitest.it)('detects a literal "undefined" segment', () => {
(0, import_vitest.expect)((0, import_path.hasLostDynamicSegment)("/p/undefined")).toBe(true);
(0, import_vitest.expect)((0, import_path.hasLostDynamicSegment)("/users/undefined/posts")).toBe(true);
(0, import_vitest.expect)((0, import_path.hasLostDynamicSegment)("/undefined")).toBe(true);
});
(0, import_vitest.it)('does not match "undefined" inside another segment', () => {
(0, import_vitest.expect)((0, import_path.hasLostDynamicSegment)("/p/undefined-things")).toBe(false);
(0, import_vitest.expect)((0, import_path.hasLostDynamicSegment)("/p/notundefined")).toBe(false);
(0, import_vitest.expect)((0, import_path.hasLostDynamicSegment)("/p/foo-undefined-bar")).toBe(false);
});
(0, import_vitest.it)("ignores search and hash values", () => {
(0, import_vitest.expect)((0, import_path.hasLostDynamicSegment)("/p/undefined?tab=profile")).toBe(true);
(0, import_vitest.expect)((0, import_path.hasLostDynamicSegment)("/p/mai1015?x=undefined")).toBe(false);
(0, import_vitest.expect)((0, import_path.hasLostDynamicSegment)("/p/mai1015#undefined")).toBe(false);
});
});
(0, import_vitest.describe)("normalizeRoutePathname", () => {
(0, import_vitest.it)("strips search, hash, and trailing slash", () => {
(0, import_vitest.expect)((0, import_path.normalizeRoutePathname)("/p/mai1015/?tab=profile#top")).toBe("/p/mai1015");
(0, import_vitest.expect)((0, import_path.normalizeRoutePathname)("/")).toBe("/");
});
(0, import_vitest.it)("strips the production base url", () => {
process.env.NODE_ENV = "production";
process.env.EXPO_BASE_URL = "/expo/prefix";
(0, import_vitest.expect)((0, import_path.normalizeRoutePathname)("/expo/prefix/p/mai1015?tab=profile")).toBe("/p/mai1015");
});
});
(0, import_vitest.describe)("getPathWithRecoveredDynamicSegment", () => {
(0, import_vitest.it)("uses the first uncorrupted candidate path", () => {
(0, import_vitest.expect)((0, import_path.getPathWithRecoveredDynamicSegment)(["/p/undefined", "/p/mai1015?tab=profile"], "/p/browser?tab=profile")).toBe("/p/mai1015?tab=profile");
});
(0, import_vitest.it)("keeps an empty uncorrupted candidate path", () => {
(0, import_vitest.expect)((0, import_path.getPathWithRecoveredDynamicSegment)([""], "/browser")).toBe("");
});
(0, import_vitest.it)("falls back when every candidate path is corrupted", () => {
(0, import_vitest.expect)((0, import_path.getPathWithRecoveredDynamicSegment)(["/p/undefined"], "/p/browser?tab=profile")).toBe("/p/browser?tab=profile");
});
});
(0, import_vitest.describe)("getPathnameWithRecoveredDynamicSegment", () => {
(0, import_vitest.it)("normalizes the recovered browser pathname", () => {
process.env.NODE_ENV = "production";
process.env.EXPO_BASE_URL = "/expo/prefix";
(0, import_vitest.expect)((0, import_path.getPathnameWithRecoveredDynamicSegment)("/p/undefined", "/expo/prefix/p/mai1015?tab=profile")).toBe("/p/mai1015");
});
});