UNPKG

one

Version:

One is a new React Framework that makes Vite serve both native and web.

79 lines (77 loc) 3.31 kB
"use strict"; var import_vitest = require("vitest"); var import_PreloadLinks = require("./PreloadLinks.native.js"); function createMockAnchor(attrs) { var _attrs_target; var el = { getAttribute(name) { var _attrs_href, _attrs_rel; if (name === "href") return (_attrs_href = attrs.href) !== null && _attrs_href !== void 0 ? _attrs_href : null; if (name === "rel") return (_attrs_rel = attrs.rel) !== null && _attrs_rel !== void 0 ? _attrs_rel : null; return null; }, hasAttribute(name) { if (name === "download") return !!attrs.download; return false; }, target: (_attrs_target = attrs.target) !== null && _attrs_target !== void 0 ? _attrs_target : "" }; return el; } (0, import_vitest.describe)("getPrefetchableHref", function () { var baseUrl = "https://tamagui.dev"; (0, import_vitest.it)("returns clean href for valid internal routes", function () { var 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", function () { var 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"', function () { var 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", function () { var 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"', function () { var 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.)", function () { (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", function () { var anchor = createMockAnchor({ href: "https://google.com/about" }); (0, import_vitest.expect)((0, import_PreloadLinks.getPrefetchableHref)(anchor, baseUrl)).toBeNull(); }); }); //# sourceMappingURL=PreloadLinks.test.native.js.map