Found while verifying #164.
The mock kiln (web_ui/mock-server/) has no way to represent a firing that failed:
- every history record is hardcoded
errorCode: 0 (router.ts:78, :88, :98)
- the simulator never enters
status: "error"
/api/v1/system always reports lastErrorCode: 0 and emergencyStop: false
So none of the error UI added in #235 — the dashboard error banner, the history detail cause, the Settings "Last Error" description, the emergency-stop guidance — is reachable in npm run dev, in the Vitest suite, or in the published demo at https://benseverson.github.io/bisque/. Verifying that PR required stubbing window.fetch in the browser by hand.
This is the same firmware/mock divergence class as #131, which has now come up five times (idle broadcast, delayMinutes, profileId omitted, profileId cleared on stop, and this).
What would fix it
Give the mock a way to reach a failed state, so the error path is exercisable:
- a
POST /api/v1/mock/fault (dev-only) or a scripted scenario that trips a fault mid-firing and leaves status: "error" with a non-zero lastErrorCode
- at least one seeded history record with
outcome: "error" and a real errorCode
emergencyStop: true reachable
The demo is the only way most people will ever see this UI, and right now it shows the happy path exclusively.
Found while verifying #164.
The mock kiln (
web_ui/mock-server/) has no way to represent a firing that failed:errorCode: 0(router.ts:78,:88,:98)status: "error"/api/v1/systemalways reportslastErrorCode: 0andemergencyStop: falseSo none of the error UI added in #235 — the dashboard error banner, the history detail cause, the Settings "Last Error" description, the emergency-stop guidance — is reachable in
npm run dev, in the Vitest suite, or in the published demo at https://benseverson.github.io/bisque/. Verifying that PR required stubbingwindow.fetchin the browser by hand.This is the same firmware/mock divergence class as #131, which has now come up five times (idle broadcast,
delayMinutes,profileIdomitted,profileIdcleared on stop, and this).What would fix it
Give the mock a way to reach a failed state, so the error path is exercisable:
POST /api/v1/mock/fault(dev-only) or a scripted scenario that trips a fault mid-firing and leavesstatus: "error"with a non-zerolastErrorCodeoutcome: "error"and a realerrorCodeemergencyStop: truereachableThe demo is the only way most people will ever see this UI, and right now it shows the happy path exclusively.