one
Version:
One is a new React Framework that makes Vite serve both native and web.
73 lines • 2.95 kB
JavaScript
var import_vitest = require("vitest");
var import_PreloadLinks = require("./PreloadLinks.cjs");
function createMockAnchor(attrs) {
const el = {
getAttribute(name) {
if (name === "href") return attrs.href ?? null;
if (name === "rel") return attrs.rel ?? null;
return null;
},
hasAttribute(name) {
if (name === "download") return !!attrs.download;
return false;
},
target: attrs.target ?? ""
};
return el;
}
(0, import_vitest.describe)("getPrefetchableHref", () => {
const baseUrl = "https://tamagui.dev";
(0, import_vitest.it)("returns clean href for valid internal routes", () => {
const anchor = createMockAnchor({
href: "/ui/button"
});
(0, import_vitest.expect)((0, import_PreloadLinks.getPrefetchableHref)(anchor, baseUrl)).toBe("/ui/button");
});
(0, import_vitest.it)("returns clean href for absolute urls matching baseUrl", () => {
const anchor = createMockAnchor({
href: "https://tamagui.dev/docs/intro"
});
(0, import_vitest.expect)((0, import_PreloadLinks.getPrefetchableHref)(anchor, baseUrl)).toBe("/docs/intro");
});
(0, import_vitest.it)('returns null for target="_blank"', () => {
const anchor = createMockAnchor({
href: "/docs/intro",
target: "_blank"
});
(0, import_vitest.expect)((0, import_PreloadLinks.getPrefetchableHref)(anchor, baseUrl)).toBeNull();
});
(0, import_vitest.it)("returns null for download attribute", () => {
const anchor = createMockAnchor({
href: "/archive.zip",
download: true
});
(0, import_vitest.expect)((0, import_PreloadLinks.getPrefetchableHref)(anchor, baseUrl)).toBeNull();
});
(0, import_vitest.it)('returns null for rel="external"', () => {
const anchor = createMockAnchor({
href: "/docs",
rel: "external"
});
(0, import_vitest.expect)((0, import_PreloadLinks.getPrefetchableHref)(anchor, baseUrl)).toBeNull();
});
(0, import_vitest.it)("returns null for file extensions (.md, .txt, .png, etc.)", () => {
(0, import_vitest.expect)((0, import_PreloadLinks.getPrefetchableHref)(createMockAnchor({
href: "/ui/button.md"
}), baseUrl)).toBeNull();
(0, import_vitest.expect)((0, import_PreloadLinks.getPrefetchableHref)(createMockAnchor({
href: "/llms.txt"
}), baseUrl)).toBeNull();
(0, import_vitest.expect)((0, import_PreloadLinks.getPrefetchableHref)(createMockAnchor({
href: "https://tamagui.dev/ui/button.md"
}), baseUrl)).toBeNull();
(0, import_vitest.expect)((0, import_PreloadLinks.getPrefetchableHref)(createMockAnchor({
href: "https://tamagui.dev/llms.txt"
}), baseUrl)).toBeNull();
});
(0, import_vitest.it)("returns null for external urls", () => {
const anchor = createMockAnchor({
href: "https://google.com/about"
});
(0, import_vitest.expect)((0, import_PreloadLinks.getPrefetchableHref)(anchor, baseUrl)).toBeNull();
});
});