Files
HiveGrid-Wireframes/03 Quellen und Referenzen/hivegrid-cloud/scripts/run-lighthouse.test.mjs
T
2026-07-08 16:15:37 +02:00

50 lines
1.4 KiB
JavaScript

import { describe, expect, it } from "vitest";
import { runLighthouse } from "./run-lighthouse.mjs";
function createStream() {
let output = "";
return {
stream: { write: (chunk) => { output += chunk; } },
get output() {
return output;
},
};
}
describe("run-lighthouse", () => {
it("skips cleanly when npx is unavailable", () => {
const stdout = createStream();
const exitCode = runLighthouse({
spawn: () => ({ error: { code: "ENOENT" }, stdout: "", stderr: "", status: null }),
stdout: stdout.stream,
stderr: createStream().stream,
});
expect(exitCode).toBe(0);
expect(stdout.output).toContain("SKIP lhci not installable");
});
it("skips cleanly when Chrome is unavailable", () => {
const stdout = createStream();
const exitCode = runLighthouse({
spawn: () => ({ stdout: "Chrome installation not found\nHealthcheck failed!\n", stderr: "", status: 1 }),
stdout: stdout.stream,
stderr: createStream().stream,
});
expect(exitCode).toBe(0);
expect(stdout.output).toContain("SKIP Chrome not installed");
});
it("returns the lhci exit status for real failures", () => {
const exitCode = runLighthouse({
spawn: () => ({ stdout: "assertion failed\n", stderr: "", status: 1 }),
stdout: createStream().stream,
stderr: createStream().stream,
});
expect(exitCode).toBe(1);
});
});