You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 0b001d2
Browse filesBrowse the repository at this point in the historyBrowse files
Copy file name to clipboardExpand all lines: scripts/navigation-flow-smoke.mjs
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -24,7 +24,7 @@ check(!shell.includes('{to:"/proveedores-clientes",labelKey:'),'partner master d
24
24
check(shell.includes('<NavLink to="/lineage"')&&app.includes('<Route path="/pescamar-ia"')&&app.includes('<Route path="/rentabilidad"'),'advanced intelligence capabilities must remain reachable without competing in primary daily navigation')
25
25
check(modules.includes("{to:'/uni',label:'Revisión visual (Uni)'")&&app.includes('<Route path="/uni"')&&app.includes('<Route path="/edgevision" element={<Navigate to="/uni" replace/>}/>'),'specialized visual review must remain reachable from administration with the legacy redirect')
26
26
check(shell.includes("t('shell.plantFlow')")&&shell.includes("t('shell.commercialFlow')")&&shell.includes('aria-label={tabsLabel}'),'detailed workspace flows must expose localized process semantics for assistive technology')
27
-
check(shell.includes("aria-label={ceoView?(locale==='es'?'Dirección':'Executive'):'Trabajo diario'}")&&shell.includes('aria-label="Consulta y configuración"'),'primary executive/daily and conditional secondary navigation groups must expose explicit assistive labels')
27
+
check(shell.includes('aria-label={workspaceNavLabel}')&&shell.includes("aria-label={t('nav.consultSettings')}")&&shell.includes("workspaceNavLabel=ceoView?t('nav.executive'):t('nav.dailyWork')"),'primary executive/daily and conditional secondary navigation groups must expose explicit assistive labels')
28
28
check(shell.includes('workspace-step-index'),'detailed workspace flows must render stage numbers')
29
29
check(css.includes('.operation-flow')&&css.includes('.commercial-flow')&&css.includes('.workspace-step-index'),'workspace flow hierarchy must be styled explicitly')
30
30
check(css.includes('a:not(:last-child):before'),'workspace stages must preserve visible directional continuity')
assert(copilot.includes('buildOperationalIntelligence(ordered,intelligenceCapabilities)'),'Seafood AI must use permission-aware Operational Intelligence')
42
42
assert(copilot.includes("commercialRole?sql`select a.id allocation_id")&&copilot.includes("commercialRole?sql`select s.id,s.dispatch_id"),'Seafood AI must not retrieve restricted commercial evidence merely to suppress a false positive')
43
43
assert(brief.includes("fetch('/api/operational-intelligence-overview'"),'Executive Decision Brief must consume the live overview')
44
-
assert(brief.includes('topOperational?<Link')&&brief.includes('topOperational.signal.title')&&brief.includes('Hacer: {topOperational.signal.action}'),'Control Tower must surface one dominant operational priority and next action')
45
-
assert(brief.includes('ownerForPath')&&brief.includes('<b>Responsable:</b> {operationalOwner}'),'Control Tower must route the dominant exception to one responsible function without pretending an individual assignment')
46
-
assert(brief.includes("return 'Comercial'")&&brief.includes("return 'Gerencia'")&&brief.includes("return 'Operación'")&&brief.includes("return 'Administración'"),'responsible routing must cover commercial, management, operations and technical administration functions')
44
+
assert(brief.includes('topOperational?<Link')&&brief.includes('topOperational.signal.title')&&brief.includes("t('brief.do',{action:topOperational.signal.action})"),'Control Tower must surface one dominant operational priority and next action')
45
+
assert(brief.includes('ownerForPath')&&brief.includes("<b>{t('home.owner')}:</b> {operationalOwner}"),'Control Tower must route the dominant exception to one responsible function without pretending an individual assignment')
46
+
assert(brief.includes("return t('brief.ownerCommercial')")&&brief.includes("return t('brief.ownerManagement')")&&brief.includes("return t('home.ownerOperations')")&&brief.includes("return t('brief.ownerAdministration')"),'responsible routing must cover commercial, management, operations and technical administration functions')
47
47
assert(brief.includes('topOperational.signal.blockers'),'Control Tower must expose blockers before continuation')
48
48
assert(brief.includes('operationalCounts.p1')&&brief.includes('operationalCounts.p2')&&brief.includes('operationalCounts.p3'),'Control Tower must show P1/P2/P3 counts')
49
49
assert(brief.includes('topOperational.path'),'dominant signal must link back to attributable lineage evidence')
50
-
assert(brief.includes("operational?'No hay acciones pendientes ahora.':'No se asume un estado sin datos.'"),'zero-signal state must distinguish observed clearance from unavailable state rather than fabricate certainty')
50
+
assert(brief.includes("operational?t('brief.clearDetail'):t('brief.noDataDetail')"),'zero-signal state must distinguish observed clearance from unavailable state rather than fabricate certainty')
51
51
assert(brief.includes('comparableCandidates=candidates.filter(item=>item.supplier.coverage>=40'),'supplier recommendation must not prefer raw high scores without minimum comparable coverage')
52
-
assert(brief.includes("`${nf.format(preferred.purchaseScore)} · ${nf.format(preferred.supplier.coverage)}% de información · confianza ${preferred.supplier.confidence}`"),'supplier score presentation must expose score, evidence coverage and confidence')
52
+
assert(brief.includes("t('brief.scoreDetail',{score:nf.format(preferred.purchaseScore),coverage:nf.format(preferred.supplier.coverage),confidence:preferred.supplier.confidence})"),'supplier score presentation must expose score, evidence coverage and confidence')
53
53
assert(today.includes("readJson<OperationalPayload>(`/api/operational-intelligence-overview"),'Today must consume the same Operational Intelligence overview as the executive Control Tower')
54
54
assert(!today.includes("readJson<TowerPayload>(`/api/control-tower"),'Today must not use the legacy parallel lot ranking as a priority source')
55
55
assert(today.includes("source:'event_graph' as const")&&today.includes("?'Origen':'Source'")&&today.includes("'registros del lote y operación actual'"),'Today must label Event Graph/live operational provenance explicitly')
0 commit comments