release: WRNexusJS 0.7.0
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import { describe, expect, test } from "bun:test";
|
||||
import { auditImage, createResponsiveImage } from "../src/index.ts";
|
||||
|
||||
describe("@wrnexus/image", () => {
|
||||
test("builds deterministic responsive image attributes", () => {
|
||||
const image = createResponsiveImage({
|
||||
src: "/hero.jpg",
|
||||
alt: "Hero",
|
||||
width: 1200,
|
||||
height: 600,
|
||||
widths: [400, 800, 1200, 800],
|
||||
sizes: "100vw",
|
||||
format: "webp",
|
||||
fetchPriority: "high",
|
||||
});
|
||||
expect(image.srcset).toContain("400w");
|
||||
expect(image.srcset).toContain("1200w");
|
||||
expect(image.loading).toBe("eager");
|
||||
expect(image.width).toBe("1200");
|
||||
});
|
||||
|
||||
test("reports layout shift and LCP mistakes", () => {
|
||||
const issues = auditImage({ src: "hero.jpg", isLcp: true, loading: "lazy" });
|
||||
expect(issues.map((issue) => issue.code)).toContain("WRN-IMAGE-DIMENSIONS");
|
||||
expect(issues.map((issue) => issue.code)).toContain("WRN-IMAGE-LCP-LAZY");
|
||||
});
|
||||
test("rejects insecure remote images unless explicitly allowed", () => {
|
||||
expect(() =>
|
||||
createResponsiveImage({
|
||||
src: "http://images.example.com/hero.jpg",
|
||||
alt: "Hero",
|
||||
width: 800,
|
||||
height: 400,
|
||||
remoteHosts: ["images.example.com"],
|
||||
}),
|
||||
).toThrow();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user