测试A01自适应页面结构
This commit is contained in:
@@ -56,6 +56,43 @@ if ($pages.pages.Count -ne 52) {
|
||||
$entry = Get-Content -LiteralPath $entryPath -Raw -Encoding utf8
|
||||
$globalStyles = Get-Content -LiteralPath $globalStylesPath -Raw -Encoding utf8
|
||||
|
||||
# A01 owns content in normal document flow. Decorative artwork must not become
|
||||
# a second full-page coordinate system.
|
||||
foreach ($required in @(
|
||||
'class="auth-header"',
|
||||
'class="auth-header__image"',
|
||||
'a01-vnext-header-v1.png',
|
||||
'mode="widthFix"',
|
||||
'class="auth-paper"',
|
||||
'auth-page-paper.jpg'
|
||||
)) {
|
||||
Assert-Contains -Content $entry -Expected $required -Message "A01 adaptive structure is missing: $required"
|
||||
}
|
||||
foreach ($forbidden in @(
|
||||
'class="page-canvas"',
|
||||
'class="page-backdrop"',
|
||||
'a01-red-hall-ink-backdrop-v1.png',
|
||||
'mode="scaleToFill"',
|
||||
'--auth-paper-start',
|
||||
'1665rpx'
|
||||
)) {
|
||||
Assert-NotContains -Content $entry -Unexpected $forbidden -Message "A01 still uses rejected page coordinates: $forbidden"
|
||||
}
|
||||
|
||||
$pageRule = [regex]::Match($entry, '(?ms)^\.auth-page\s*\{(?<Body>.*?)^\}')
|
||||
$paperRule = [regex]::Match($entry, '(?ms)^\.auth-paper\s*\{(?<Body>.*?)^\}')
|
||||
$contentRule = [regex]::Match($entry, '(?ms)^\.login-content\s*\{(?<Body>.*?)^\}')
|
||||
foreach ($rule in @($pageRule, $paperRule, $contentRule)) {
|
||||
if (-not $rule.Success) { throw 'A01 adaptive layout rule is missing.' }
|
||||
}
|
||||
Assert-Contains -Content $pageRule.Groups['Body'].Value -Expected 'display: flex;' -Message 'A01 root must use flex flow.'
|
||||
Assert-Contains -Content $pageRule.Groups['Body'].Value -Expected 'flex-direction: column;' -Message 'A01 root must stack header and paper.'
|
||||
Assert-Contains -Content $pageRule.Groups['Body'].Value -Expected 'min-height: var(--app-viewport-height);' -Message 'A01 root must fill without locking content height.'
|
||||
Assert-NotContains -Content $pageRule.Groups['Body'].Value -Unexpected 'height: var(--app-viewport-height);' -Message 'A01 root must not lock content to the viewport.'
|
||||
Assert-Contains -Content $paperRule.Groups['Body'].Value -Expected 'flex: 1;' -Message 'A01 paper must receive remaining viewport space.'
|
||||
Assert-Contains -Content $contentRule.Groups['Body'].Value -Expected 'justify-content: space-between;' -Message 'A01 must distribute spare height in normal flow.'
|
||||
Assert-NotContains -Content $contentRule.Groups['Body'].Value -Unexpected 'grid-area:' -Message 'A01 interactive content must not overlap page artwork.'
|
||||
|
||||
# Typography has one owner, and the title decoration participates in normal flow.
|
||||
Assert-Contains -Content $globalStyles -Expected 'font-family: "STKaiti", "KaiTi", serif' -Message 'Global styles must own the STKaiti/KaiTi font contract.'
|
||||
Assert-NotContains -Content $entry -Unexpected 'font-family:' -Message 'A01 must inherit the global font contract instead of overriding it locally.'
|
||||
@@ -88,15 +125,14 @@ $brandSealRule = [regex]::Match($entry, '(?ms)^\.brand-seal\s*\{(?<Body>.*?)^\}'
|
||||
if (-not $brandSealRule.Success) {
|
||||
throw 'A01 is missing the brand seal style rule.'
|
||||
}
|
||||
Assert-Contains -Content $brandSealRule.Groups['Body'].Value -Expected 'width: 184rpx;' -Message 'A01 brand seal must use the approved smaller width.'
|
||||
Assert-Contains -Content $brandSealRule.Groups['Body'].Value -Expected 'height: 221rpx;' -Message 'A01 brand seal must preserve its aspect ratio at the approved smaller height.'
|
||||
Assert-Contains -Content $brandSealRule.Groups['Body'].Value -Expected 'margin-top: 64rpx;' -Message 'A01 brand seal must keep its approved vertical spacing in document flow.'
|
||||
Assert-Contains -Content $brandSealRule.Groups['Body'].Value -Expected 'justify-self: center;' -Message 'A01 brand seal must remain horizontally centered by grid alignment.'
|
||||
Assert-NotContains -Content $brandSealRule.Groups['Body'].Value -Unexpected 'position:' -Message 'A01 brand seal must not use positioning for ordinary layout.'
|
||||
Assert-Contains -Content $brandSealRule.Groups['Body'].Value -Expected 'position: absolute;' -Message 'A01 brand seal must be scoped as decoration inside the header.'
|
||||
Assert-Contains -Content $brandSealRule.Groups['Body'].Value -Expected 'left: 50%;' -Message 'A01 brand seal must remain centered inside the header.'
|
||||
Assert-Contains -Content $brandSealRule.Groups['Body'].Value -Expected 'transform: translateX(-50%);' -Message 'A01 brand seal must use header-local centering.'
|
||||
|
||||
# Final decorative surfaces must come from real bitmap assets.
|
||||
foreach ($asset in @(
|
||||
'a01-red-hall-ink-backdrop-v1.png',
|
||||
'a01-vnext-header-v1.png',
|
||||
'auth-page-paper.jpg',
|
||||
'brand-seal.png',
|
||||
'a01-vnext-divider-v1.png',
|
||||
'a01-scroll-primary-v3.png',
|
||||
|
||||
Reference in New Issue
Block a user