完成50%
This commit is contained in:
@@ -27,11 +27,9 @@ $pagePath = Join-Path $root 'pages/tree/t01-tree-overview.vue'
|
||||
$t02Path = Join-Path $root 'pages/tree/t02-tree-states.vue'
|
||||
$page = Get-Content -LiteralPath $pagePath -Raw -Encoding utf8
|
||||
$pages = Get-Content -LiteralPath (Join-Path $root 'pages.json') -Raw -Encoding utf8
|
||||
$catalog = Get-Content -LiteralPath (Join-Path $root 'data/page-catalog.js') -Raw -Encoding utf8
|
||||
|
||||
if (Test-Path -LiteralPath $t02Path) { throw 'T02 duplicate route file must be removed' }
|
||||
if ($pages -match 'pages/tree/t02-tree-states') { throw 'T02 duplicate route must be removed from pages.json' }
|
||||
if ($catalog -match 't02:') { throw 'T02 duplicate catalog entry must be removed' }
|
||||
if ($page -match "@/utils/api\.js|\bappApi\b") { throw 'T01 design phase must not connect the API layer' }
|
||||
|
||||
foreach ($required in @(
|
||||
@@ -56,11 +54,14 @@ foreach ($required in @(
|
||||
't01-member-node-selected.png',
|
||||
't01-state-panel.png',
|
||||
't01-member-drawer.png',
|
||||
'/pages/tree/t03-member-profile',
|
||||
'/pages/tree/t04-add-relative',
|
||||
'/pages/tree/t06-edit-relationship',
|
||||
'/pages/tree/t07-member-directory',
|
||||
'openPage("T03"',
|
||||
'openPage("T04"',
|
||||
'openPage("T06"',
|
||||
'openPage("T07"',
|
||||
'query.genealogyId',
|
||||
'getGenealogyFixtureAccess',
|
||||
'genealogyContext.isCurrentGenealogyInvalidated()',
|
||||
'["owner", "member"].includes(access.accessRole)',
|
||||
':id="`tree-member-${member.id}`"',
|
||||
':scroll-left="treeState === ''tree'' ? treeScrollLeft : 0"',
|
||||
'@scroll="handleTreeScroll"',
|
||||
@@ -72,6 +73,12 @@ foreach ($required in @(
|
||||
'class="tree-recenter"'
|
||||
)) { Assert-Contains $page $required "Missing T01 contract: $required" }
|
||||
|
||||
$invalidatedGuardIndex = $page.IndexOf('genealogyContext.isCurrentGenealogyInvalidated()')
|
||||
$contextWriteIndex = $page.IndexOf('genealogyContext.setCurrentGenealogyId(genealogyId.value)')
|
||||
if ($invalidatedGuardIndex -lt 0 -or $contextWriteIndex -le $invalidatedGuardIndex) {
|
||||
throw 'T01 must reject an invalidated genealogy before any route can rewrite the current context'
|
||||
}
|
||||
|
||||
foreach ($forbidden in @(
|
||||
'g03-create-flow-panel.png',
|
||||
'g06-search-input-wide.png',
|
||||
|
||||
Reference in New Issue
Block a user