Files
jiapuapp/tests/f10-video-status-contract.ps1
T
2026-07-20 17:23:13 +08:00

36 lines
1.0 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 }
}
$page = Read-Utf8 'pages/family/f10-video-list.vue'
$catalog = Read-Utf8 'data/page-catalog.js'
foreach ($expected in @(
'class="video-status-page"',
'class="video-status-card"',
'class="video-return-action"',
'const returnToFamily = () =>',
'/pages/family/f01-family-feed',
'ModulePageBackground',
'PageHeader',
'AppButton'
)) {
Assert-Contains $page $expected "F10 contract missing: $expected"
}
foreach ($forbidden in @('<ModulePage page-id="f10"', 'import ModulePage from')) {
if ($page.Contains($forbidden)) { throw "F10 retains forbidden dependency: $forbidden" }
}
if ($catalog -match '(?m)^\s*f10\s*:') {
throw 'F10 obsolete page-catalog owner must be removed'
}
Write-Output 'F10-VIDEO-STATUS-CONTRACT PASS'