diff --git a/LianSyn-platform/app-operations-dashboard.test.mjs b/LianSyn-platform/app-operations-dashboard.test.mjs index e591b0d..fdfa151 100644 --- a/LianSyn-platform/app-operations-dashboard.test.mjs +++ b/LianSyn-platform/app-operations-dashboard.test.mjs @@ -10,12 +10,21 @@ const [app, index, styles, taskService, server] = await Promise.all([ readFile(new URL('../control-plane/src/server.ts', import.meta.url), 'utf8') ]); -test('dashboard summary cards share one visual treatment and expose an accessible selected state', () => { +test('dashboard summary cards are uniform display-only totals and leave filtering to the explicit controls', () => { + const summaryRenderer = app.slice( + app.indexOf('function renderOperationsDashboardSummary()'), + app.indexOf('function operationsDashboardRankScale') + ); assert.match(app, /label: '操作次数'[^\n]+tone: 'total'/); assert.doesNotMatch(app, /tone: 'primary'/); - assert.match(app, /card\.setAttribute\('aria-pressed', String\(isSelected\)\)/); + assert.match(summaryRenderer, /const card = el\('article', `operations-dashboard-stat operations-dashboard-stat-\$\{item\.tone\}`\)/); + assert.doesNotMatch(summaryRenderer, /selectedStatus|isSelected|operationsStatus|aria-pressed/); + assert.doesNotMatch(app, /\$\('#operationsDashboardSummary'\)\?\.addEventListener\('click'/); + assert.match(index, /