UNPKG

one

Version:

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

61 lines (60 loc) 2.96 kB
import { describe, expect, it } from "vitest"; import { hasFileExtension, shouldPreloadRoute } from "./url.mjs"; describe("url utils", () => { describe("hasFileExtension", () => { it("returns true for common file extensions", () => { expect(hasFileExtension("/ui/button.md")).toBe(true); expect(hasFileExtension("/llms.txt")).toBe(true); expect(hasFileExtension("/favicon.ico")).toBe(true); expect(hasFileExtension("/assets/image.png")).toBe(true); expect(hasFileExtension("/doc.pdf")).toBe(true); expect(hasFileExtension("/data.json")).toBe(true); expect(hasFileExtension("/archive.zip")).toBe(true); expect(hasFileExtension("/styles.css")).toBe(true); expect(hasFileExtension("/script.js")).toBe(true); expect(hasFileExtension("/manifest.webmanifest")).toBe(true); expect(hasFileExtension("/font.woff2")).toBe(true); }); it("returns true with query params or hashes", () => { expect(hasFileExtension("/ui/button.md?download=1")).toBe(true); expect(hasFileExtension("/llms.txt#section")).toBe(true); expect(hasFileExtension("https://tamagui.dev/ui/button.md?foo=bar#baz")).toBe(true); }); it("returns false for route paths without extensions", () => { expect(hasFileExtension("/")).toBe(false); expect(hasFileExtension("/about")).toBe(false); expect(hasFileExtension("/ui/button")).toBe(false); expect(hasFileExtension("/docs/components/button")).toBe(false); expect(hasFileExtension("/v1.0")).toBe(false); expect(hasFileExtension("/version-2.1.0")).toBe(false); expect(hasFileExtension("/docs/1.0/intro")).toBe(false); }); it("returns false for empty or invalid inputs", () => { expect(hasFileExtension("")).toBe(false); }); }); describe("shouldPreloadRoute", () => { it("returns true for valid internal routes", () => { expect(shouldPreloadRoute("/")).toBe(true); expect(shouldPreloadRoute("/about")).toBe(true); expect(shouldPreloadRoute("/ui/button")).toBe(true); expect(shouldPreloadRoute("/docs/components/button")).toBe(true); }); it("returns false for file extensions", () => { expect(shouldPreloadRoute("/ui/button.md")).toBe(false); expect(shouldPreloadRoute("/llms.txt")).toBe(false); expect(shouldPreloadRoute("/favicon.ico")).toBe(false); }); it("returns false for external urls or schemes", () => { expect(shouldPreloadRoute("https://example.com/about")).toBe(false); expect(shouldPreloadRoute("http://example.com")).toBe(false); expect(shouldPreloadRoute("mailto:test@example.com")).toBe(false); expect(shouldPreloadRoute("tel:123456")).toBe(false); }); it("returns false for hash links or empty hrefs", () => { expect(shouldPreloadRoute("#section")).toBe(false); expect(shouldPreloadRoute("")).toBe(false); }); }); }); //# sourceMappingURL=url.test.mjs.map