one
Version:
One is a new React Framework that makes Vite serve both native and web.
77 lines (76 loc) • 2.71 kB
JavaScript
import { describe, expect, it } from "vitest";
import { getPrefetchableHref } from "./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;
}
describe("getPrefetchableHref", function () {
var baseUrl = "https://tamagui.dev";
it("returns clean href for valid internal routes", function () {
var anchor = createMockAnchor({
href: "/ui/button"
});
expect(getPrefetchableHref(anchor, baseUrl)).toBe("/ui/button");
});
it("returns clean href for absolute urls matching baseUrl", function () {
var anchor = createMockAnchor({
href: "https://tamagui.dev/docs/intro"
});
expect(getPrefetchableHref(anchor, baseUrl)).toBe("/docs/intro");
});
it('returns null for target="_blank"', function () {
var anchor = createMockAnchor({
href: "/docs/intro",
target: "_blank"
});
expect(getPrefetchableHref(anchor, baseUrl)).toBeNull();
});
it("returns null for download attribute", function () {
var anchor = createMockAnchor({
href: "/archive.zip",
download: true
});
expect(getPrefetchableHref(anchor, baseUrl)).toBeNull();
});
it('returns null for rel="external"', function () {
var anchor = createMockAnchor({
href: "/docs",
rel: "external"
});
expect(getPrefetchableHref(anchor, baseUrl)).toBeNull();
});
it("returns null for file extensions (.md, .txt, .png, etc.)", function () {
expect(getPrefetchableHref(createMockAnchor({
href: "/ui/button.md"
}), baseUrl)).toBeNull();
expect(getPrefetchableHref(createMockAnchor({
href: "/llms.txt"
}), baseUrl)).toBeNull();
expect(getPrefetchableHref(createMockAnchor({
href: "https://tamagui.dev/ui/button.md"
}), baseUrl)).toBeNull();
expect(getPrefetchableHref(createMockAnchor({
href: "https://tamagui.dev/llms.txt"
}), baseUrl)).toBeNull();
});
it("returns null for external urls", function () {
var anchor = createMockAnchor({
href: "https://google.com/about"
});
expect(getPrefetchableHref(anchor, baseUrl)).toBeNull();
});
});
//# sourceMappingURL=PreloadLinks.test.native.js.map