34 lines
1.3 KiB
PowerShell
34 lines
1.3 KiB
PowerShell
$ErrorActionPreference = 'Stop'
|
|
$root = Split-Path -Parent $PSScriptRoot
|
|
|
|
function Read-Utf8([string]$Path) {
|
|
[System.IO.File]::ReadAllText((Join-Path $root $Path), [System.Text.Encoding]::UTF8)
|
|
}
|
|
|
|
$targets = @(
|
|
'pages/family/f02-publish-feed.vue',
|
|
'pages/tree/t03-member-profile.vue',
|
|
'pages/tree/t08-member-states.vue',
|
|
'pages/genealogy/g03-create-genealogy.vue',
|
|
'pages/genealogy/g08-join-application.vue',
|
|
'pages/genealogy/g09-my-applications.vue',
|
|
'pages/genealogy/g10-application-review.vue',
|
|
'pages/genealogy/g11-genealogy-settings.vue',
|
|
'pages/genealogy/g12-generation-poems.vue'
|
|
)
|
|
|
|
foreach ($target in $targets) {
|
|
$content = Read-Utf8 $target
|
|
foreach ($forbidden in @('g03-create-flow-panel.png', 'g06-search-input-wide.png', 'application-status-card.png')) {
|
|
if ($content.Contains($forbidden)) { throw "$target still uses obsolete opaque cross-module surface: $forbidden" }
|
|
}
|
|
}
|
|
|
|
$modulePage = Read-Utf8 'components/ModulePage.vue'
|
|
if ($modulePage.Contains('class="page-intro"')) { throw 'ModulePage must remove repeated numbered intro blocks' }
|
|
foreach ($required in @('module-content-frame.png', 'module-field-frame.png', '<AppLoading')) {
|
|
if (-not $modulePage.Contains($required)) { throw "ModulePage baseline promotion missing: $required" }
|
|
}
|
|
|
|
Write-Output 'MODULE-BASELINE-PROMOTION-CONTRACT PASS'
|