mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
fix(nightly): de-flake matrix timeouts, exclude browser tool from fuzz (#349)
Systematic round - attack the failure classes, not one bug at a time: - Flakiness (Coverage/Extended Matrix flipped green<->red): the generated format-matrix conversion tests hardcode a 30s/60s per-test timeout that the jobs' VITEST_TEST_TIMEOUT can't override. Heavy conversions under coverage instrumentation / full matrix intermittently exceed it. Raise to 120s. - Schemathesis: html-to-image returns 503 when its headless browser isn't present (always, in the fuzz env) - same expected-unavailable class as the AI 501s. Exclude it from the fuzz (it can't be exercised without a browser). - Baseline regen: bump timeout 60->120 min so it can finish now that the route sweep (#347) lets the visual specs pass instead of failing+retrying.
This commit is contained in:
@@ -955,7 +955,7 @@ describe("Extended conversion targets (core formats)", () => {
|
||||
if (fmt.name.toLowerCase() === target.format) continue;
|
||||
if (fmt.name === "AVIF" && target.format === "avif") continue;
|
||||
|
||||
const testTimeout = target.format === "avif" || target.format === "gif" ? 120_000 : 30_000;
|
||||
const testTimeout = target.format === "avif" || target.format === "gif" ? 120_000 : 120_000;
|
||||
it(`${fmt.name} -> ${target.format}`, { timeout: testTimeout }, async () => {
|
||||
const res = await callTool("convert", fmt, { format: target.format });
|
||||
if (!res) return;
|
||||
|
||||
@@ -859,7 +859,7 @@ describe("SVG-to-raster", () => {
|
||||
const SVG_OUTPUT_FORMATS = ["png", "jpg", "webp", "avif"] as const;
|
||||
|
||||
for (const outFmt of SVG_OUTPUT_FORMATS) {
|
||||
const testTimeout = outFmt === "avif" ? 120_000 : 30_000;
|
||||
const testTimeout = outFmt === "avif" ? 120_000 : 120_000;
|
||||
it(`converts SVG to ${outFmt}`, { timeout: testTimeout }, async () => {
|
||||
const fixturePath = fixtures.image.formats("svg");
|
||||
if (!existsSync(fixturePath)) return;
|
||||
|
||||
@@ -704,7 +704,7 @@ describe("Cross-format conversion matrix", () => {
|
||||
if (inputLower === outFmt) continue;
|
||||
if (inputLower === "jpeg" && outFmt === "jpg") continue;
|
||||
|
||||
const testTimeout = outFmt === "avif" ? 120_000 : 60_000;
|
||||
const testTimeout = outFmt === "avif" ? 120_000 : 120_000;
|
||||
it(`${fmt.name} -> ${outFmt}`, { timeout: testTimeout }, async () => {
|
||||
const fixturePath = join(fixtureDir.formats, fmt.file);
|
||||
if (!existsSync(fixturePath)) return;
|
||||
|
||||
@@ -185,7 +185,7 @@ describe("New format support", () => {
|
||||
for (const outFmt of OUTPUTS) {
|
||||
const inLower = input.name.toLowerCase();
|
||||
if (inLower === outFmt || (inLower === "jpeg" && outFmt === "jpg")) continue;
|
||||
const testTimeout = outFmt === "avif" ? 120_000 : 60_000;
|
||||
const testTimeout = outFmt === "avif" ? 120_000 : 120_000;
|
||||
it(`converts ${input.name} to ${outFmt}`, { timeout: testTimeout }, async () => {
|
||||
const fileBuffer = readFileSync(join(fixtureDir.formats, input.file));
|
||||
const { body, contentType } = createMultipartPayload([
|
||||
|
||||
Reference in New Issue
Block a user