one
Version:
One is a new React Framework that makes Vite serve both native and web.
41 lines (39 loc) • 2.92 kB
JavaScript
;
var import_vitest = require("vitest");
var import_extractPathFromURL = require("./extractPathFromURL.native.js");
var import_getStateFromPath = require("./getStateFromPath.native.js");
var import_testing_utils = require("../testing-utils.native.js");
(0, import_vitest.describe)("extractPathFromURL prefixes", function () {
(0, import_vitest.it)("keeps existing custom scheme behavior without prefixes", function () {
(0, import_vitest.expect)((0, import_extractPathFromURL.extractPathFromURL)([], "threepunchconvo://thread/123")).toBe("thread/123");
(0, import_vitest.expect)((0, import_extractPathFromURL.extractPathFromURL)([], "threepunchconvo:///thread/123")).toBe("thread/123");
});
(0, import_vitest.it)("strips the longest matching custom scheme prefix", function () {
(0, import_vitest.expect)((0, import_extractPathFromURL.extractPathFromURL)(["threepunchconvo://", "threepunchconvo://app"], "threepunchconvo://app/thread/123")).toBe("thread/123");
});
(0, import_vitest.it)("strips universal link prefixes", function () {
(0, import_vitest.expect)((0, import_extractPathFromURL.extractPathFromURL)(["https://threepunch.example/app"], "https://threepunch.example/app/thread/123?tab=chat")).toBe("thread/123?tab=chat");
(0, import_vitest.expect)((0, import_extractPathFromURL.extractPathFromURL)(["https://threepunch.example/app"], "https://threepunch.example/app")).toBe("");
(0, import_vitest.expect)((0, import_extractPathFromURL.extractPathFromURL)(["https://threepunch.example/app"], "https://threepunch.example/application/thread/123")).toBe("application/thread/123");
});
(0, import_vitest.it)("strips a prefix when the boundary is a query or hash", function () {
(0, import_vitest.expect)((0, import_extractPathFromURL.extractPathFromURL)(["threepunchconvo://app"], "threepunchconvo://app?utm=share")).toBe("?utm=share");
(0, import_vitest.expect)((0, import_extractPathFromURL.extractPathFromURL)(["threepunchconvo://app"], "threepunchconvo://app#section")).toBe("#section");
(0, import_vitest.expect)((0, import_extractPathFromURL.extractPathFromURL)(["https://threepunch.example/app"], "https://threepunch.example/app?ref=share")).toBe("?ref=share");
});
(0, import_vitest.it)("uses stripped paths for route matching", function () {
var config = (0, import_testing_utils.getMockConfig)(["_layout.tsx", "index.tsx", "thread/[id].tsx", "+not-found.tsx"]);
var path = (0, import_extractPathFromURL.extractPathFromURL)(["threepunchconvo://app"], "threepunchconvo://app/thread/123");
(0, import_vitest.expect)((0, import_getStateFromPath.getStateFromPath)(path, config)).toEqual({
routes: [{
name: "thread/[id]",
params: {
id: "123"
},
key: "thread/[id]-0",
path: "thread/123"
}]
});
});
});
//# sourceMappingURL=extractPathFromURL.test.native.js.map