mirror of
https://github.com/fabro-sh/fabro.git
synced 2026-10-09 03:20:56 +00:00
Server changes:
- Add /boards/runs to demo routes (delegates to list_runs)
- Fix demo get_run_status to return StoreRunSummary shape matching OpenAPI spec
- Enrich real /boards/runs to return RunListItem shape with board column mapping
(Running->working, Paused->pending, Completed->merge; others excluded)
- Update existing tests that asserted old RunStatusResponse fields from /boards/runs
Web UI changes:
- Add DemoModeProvider context and useDemoMode hook
- Hide Workflows/Insights nav items in production mode via getVisibleNavigation
- Change run-detail loader to use /runs/{id} directly instead of searching /boards/runs
- Add mapRunSummaryToRunItem for mapping server response to UI shape
- Add Graph tab, hide Stages tab in production mode, always hide Files tab
- Make run-overview and run-graph loaders resilient to 501 via apiJsonOrNull
- Add isNotImplemented and apiJsonOrNull helpers to api.ts
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
20 lines
708 B
TypeScript
20 lines
708 B
TypeScript
import { describe, expect, test } from "bun:test";
|
|
import { getVisibleNavigation } from "./app-shell";
|
|
|
|
describe("getVisibleNavigation", () => {
|
|
test("shows all nav items in demo mode", () => {
|
|
const items = getVisibleNavigation(true);
|
|
const names = items.map((i) => i.name);
|
|
expect(names).toContain("Workflows");
|
|
expect(names).toContain("Runs");
|
|
expect(names).toContain("Insights");
|
|
});
|
|
|
|
test("hides Workflows and Insights in production mode", () => {
|
|
const items = getVisibleNavigation(false);
|
|
const names = items.map((i) => i.name);
|
|
expect(names).not.toContain("Workflows");
|
|
expect(names).not.toContain("Insights");
|
|
expect(names).toContain("Runs");
|
|
});
|
|
});
|