24 lines
1.3 KiB
PowerShell
24 lines
1.3 KiB
PowerShell
$ErrorActionPreference = 'Stop'
|
|
$root = Split-Path $PSScriptRoot -Parent
|
|
$page = [System.IO.File]::ReadAllText((Join-Path $root 'pages/genealogy/g01-my-genealogies.vue'), [System.Text.Encoding]::UTF8)
|
|
|
|
foreach ($expected in @(
|
|
'@include adaptive.adaptive-genealogy-current-slip',
|
|
'@include adaptive.adaptive-genealogy-list-card',
|
|
'@include adaptive.adaptive-genealogy-state-panel',
|
|
'background: url("/static/assets/foundation/transparent/a01-scroll-primary-v3.png") center / contain no-repeat',
|
|
'grid-template-columns: minmax(0, 1fr) 96rpx'
|
|
)) {
|
|
if (-not $page.Contains($expected)) { throw "G01 document-flow contract missing: $expected" }
|
|
}
|
|
foreach ($layer in @('.add-dialog-layer', '.genealogy-switcher-layer')) {
|
|
$escaped = [regex]::Escape($layer)
|
|
if ($page -notmatch "(?s)$escaped\s*\{[^}]*position:\s*fixed;") { throw "G01 required dialog layer is not fixed: $layer" }
|
|
}
|
|
if ([regex]::Matches($page, 'position\s*:').Count -ne 2) { throw 'G01 must keep only its two user-triggered dialog layers positioned' }
|
|
if ($page -match 'class="(?:current-frame|current-seal-frame|application-record__skin|error-panel__frame|empty-panel__frame|empty-seal__skin|empty-search-action__skin|empty-invite-action__skin|state-retry__skin)"') {
|
|
throw 'G01 decorative skins must be container backgrounds'
|
|
}
|
|
|
|
Write-Output 'G01-DOCUMENT-FLOW-CONTRACT PASS'
|