Files
jiapuapp/tests/f-series-all-states-visual-contract.ps1
T
2026-07-20 06:52:33 +08:00

28 lines
1.6 KiB
PowerShell

$ErrorActionPreference = 'Stop'
function Read-Utf8([string]$Path) { [System.IO.File]::ReadAllText((Join-Path (Join-Path $PSScriptRoot '..') $Path), [System.Text.Encoding]::UTF8) }
function Assert-Contains([string]$Content, [string]$Expected, [string]$Message) { if (-not $Content.Contains($Expected)) { throw $Message } }
$f01 = Read-Utf8 'pages/family/f01-family-feed.vue'
$f02 = Read-Utf8 'pages/family/f02-publish-feed.vue'
$module = Read-Utf8 'components/ModulePage.vue'
foreach ($expected in @('font-size:24rpx','font-size:23rpx','font-size:22rpx')) {
Assert-Contains $f01 $expected "F01 readability token missing: $expected"
}
foreach ($expected in @('font-size:24rpx','font-size:23rpx')) {
Assert-Contains $f02 $expected "F02 readability token missing: $expected"
}
foreach ($expected in @(
'.module-lead { position: relative; height: 56rpx; margin: 0 12rpx 18rpx; color: $ink-muted; font-size: 23rpx;',
'.form-row > text { position: absolute; top: 28rpx; left: 26rpx; z-index: 1; color: $ink; font-size: 24rpx;',
'.form-row input { position: absolute; top: 0; right: 22rpx; bottom: 0; left: 178rpx; z-index: 1; height: 84rpx; color: $ink; font-size: 23rpx;',
'.list-card__copy text:nth-child(2) { margin-top: 10rpx; color: $ink-muted; font-size: 23rpx;',
'.detail-card text:last-child { margin-top: 10rpx; color: $ink; font-size: 24rpx;',
'.status-card__note { display: block; margin-top: 17rpx; color: $ink-muted; font-size: 24rpx;'
)) {
Assert-Contains $module $expected "ModulePage readability contract missing: $expected"
}
Write-Output 'F series all-states visual contract passed.'