raceday kontroller
This commit is contained in:
@@ -66,3 +66,23 @@ test("open practice allows an unset lap window but still requires the main decod
|
||||
result = buildRaceDayPreflight(state, practice, { backendAvailable: true });
|
||||
assert.equal(result.ready, false);
|
||||
});
|
||||
|
||||
test("preflight presents blockers before warnings without changing the original checks", async () => {
|
||||
const { sortRaceDayChecks } = await import("../src/race_day_view.js");
|
||||
const checks = [{ id: "audio", level: "warning" }, { id: "session", level: "ok" }, { id: "decoder", level: "error" }];
|
||||
assert.deepEqual(sortRaceDayChecks(checks).map((item) => item.id), ["decoder", "audio", "session"]);
|
||||
assert.equal(checks[0].id, "audio");
|
||||
});
|
||||
|
||||
test("preflight shortcuts respect driver, shared-car and team setup", async () => {
|
||||
const { getRaceDayCheckAction: action } = await import("../src/race_day_view.js");
|
||||
const missing = { id: "transponders", level: "error" };
|
||||
assert.equal(action(missing, { mode: "race", type: "qualification" }).view, "drivers");
|
||||
assert.equal(action(missing, { mode: "track", type: "heat" }).view, "cars");
|
||||
assert.equal(action(missing, { mode: "race", type: "team_race" }).view, "race_setup");
|
||||
assert.equal(action({ id: "participants", level: "error" }, { mode: "track" }).view, "events");
|
||||
assert.equal(action({ id: "decoder", level: "error" }).view, "settings");
|
||||
assert.equal(action({ id: "session", level: "error" }).view, "timing");
|
||||
assert.equal(action({ id: "lap_window", level: "warning" }, { mode: "race" }).field, "minLapSec");
|
||||
assert.equal(action({ id: "decoder", level: "ok" }), null);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user