fix: give the Ace-worker story a budget that can outlast a loaded machine

`JsonObjectInput > Annotates The Offending Line` waits for Ace's JSON worker to
produce gutter annotations. The worker starts out of process and debounces its
result, so the story already used an explicit `waitFor` — but it asked for
5000ms while the storybook vitest project set no `testTimeout` at all, leaving
it on vitest's 5000ms default. The wait could therefore never win: the test was
killed at exactly the moment its budget expired, and on a loaded machine that is
what happened, reporting `expected 0 to be greater than 0`.

Raise the project's `testTimeout` to 15s and the story's own wait to 10s, so the
wait has room to report what it actually saw. Neither loosens an assertion — a
story that blows 15s has genuinely failed, and a worker that never starts still
fails, just later.

Closes #2292

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01XtdD6rzc1ddT28ZNE9wUjV
Signed-off-by: cliffhall <cliff@futurescale.com>
This commit is contained in:
cliffhall 2026-09-07 18:08:09 -04:00
commit 16a743f895

View file

@ -209,9 +209,12 @@ export const AnnotatesTheOffendingLine: Story = {
await expect(annotations.length).toBeGreaterThan(0);
await expect(annotations.some((a) => a.type === "error")).toBe(true);
},
// The worker is asynchronous and debounced, so this needs a real wait
// rather than a tick.
{ timeout: 5000 },
// The worker is asynchronous, starts out of process and debounces its
// result, so this needs a real wait rather than a tick — and a budget
// that survives a loaded machine, where 5000ms did not (#2292). It also
// has to stay under the storybook project's `testTimeout`, or the test is
// killed before the wait can report what it saw.
{ timeout: 10000 },
);
},
};