fix: use correct DashboardMetrics shape in mobile sidebar e2e stubs
The dashboard page accesses metrics.throughput.primary.points which requires the full DashboardMetrics type structure. The original stub returned a flat object with wrong fields, causing TypeError in all authenticated tests. Also adds stubs for boards, agents, activity, gateways, and board-groups APIs that the dashboard and boards pages query on load. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -7,17 +7,59 @@ describe("/dashboard - mobile sidebar", () => {
|
|||||||
|
|
||||||
setupCommonPageTestHooks(apiBase);
|
setupCommonPageTestHooks(apiBase);
|
||||||
|
|
||||||
|
const emptySeries = {
|
||||||
|
primary: { range: "7d", bucket: "day", points: [] },
|
||||||
|
comparison: { range: "7d", bucket: "day", points: [] },
|
||||||
|
};
|
||||||
|
|
||||||
function stubDashboardApis() {
|
function stubDashboardApis() {
|
||||||
cy.intercept("GET", `${apiBase}/metrics/dashboard*`, {
|
cy.intercept("GET", `${apiBase}/metrics/dashboard*`, {
|
||||||
statusCode: 200,
|
statusCode: 200,
|
||||||
body: {
|
body: {
|
||||||
total_boards: 0,
|
generated_at: new Date().toISOString(),
|
||||||
total_tasks: 0,
|
range: "7d",
|
||||||
tasks_by_status: {},
|
kpis: {
|
||||||
|
inbox_tasks: 0,
|
||||||
|
in_progress_tasks: 0,
|
||||||
|
review_tasks: 0,
|
||||||
|
done_tasks: 0,
|
||||||
|
tasks_in_progress: 0,
|
||||||
active_agents: 0,
|
active_agents: 0,
|
||||||
pending_approvals: 0,
|
error_rate_pct: 0,
|
||||||
|
median_cycle_time_hours_7d: null,
|
||||||
|
},
|
||||||
|
throughput: emptySeries,
|
||||||
|
cycle_time: emptySeries,
|
||||||
|
error_rate: emptySeries,
|
||||||
|
wip: emptySeries,
|
||||||
|
pending_approvals: { items: [], total: 0 },
|
||||||
},
|
},
|
||||||
}).as("dashboardMetrics");
|
}).as("dashboardMetrics");
|
||||||
|
|
||||||
|
cy.intercept("GET", `${apiBase}/boards*`, {
|
||||||
|
statusCode: 200,
|
||||||
|
body: { items: [], total: 0 },
|
||||||
|
}).as("boardsList");
|
||||||
|
|
||||||
|
cy.intercept("GET", `${apiBase}/agents*`, {
|
||||||
|
statusCode: 200,
|
||||||
|
body: { items: [], total: 0 },
|
||||||
|
}).as("agentsList");
|
||||||
|
|
||||||
|
cy.intercept("GET", `${apiBase}/activity*`, {
|
||||||
|
statusCode: 200,
|
||||||
|
body: { items: [], total: 0 },
|
||||||
|
}).as("activityList");
|
||||||
|
|
||||||
|
cy.intercept("GET", `${apiBase}/gateways/status*`, {
|
||||||
|
statusCode: 200,
|
||||||
|
body: { gateways: [] },
|
||||||
|
}).as("gatewaysStatus");
|
||||||
|
|
||||||
|
cy.intercept("GET", `${apiBase}/board-groups*`, {
|
||||||
|
statusCode: 200,
|
||||||
|
body: { items: [], total: 0 },
|
||||||
|
}).as("boardGroupsList");
|
||||||
}
|
}
|
||||||
|
|
||||||
function visitDashboardAuthenticated() {
|
function visitDashboardAuthenticated() {
|
||||||
|
|||||||
Reference in New Issue
Block a user