44 lines
1.4 KiB
PowerShell
44 lines
1.4 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 {
|
|
param([string]$Content, [string]$Expected, [string]$Message)
|
|
if (-not $Content.Contains($Expected)) { throw $Message }
|
|
}
|
|
|
|
function Decode-Utf8Base64([string]$Value) {
|
|
[System.Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($Value))
|
|
}
|
|
|
|
$catalog = Read-Utf8 'data/page-catalog.js'
|
|
$module = Read-Utf8 'components/ModulePage.vue'
|
|
|
|
foreach ($expected in @(
|
|
'states: {',
|
|
"eyebrow: '$(Decode-Utf8Base64 '6LCx5paH5bey5aSx5pWI')'",
|
|
"title: '$(Decode-Utf8Base64 '6L+Z56+H6LCx5paH5bey5peg5rOV5p+l55yL')'",
|
|
"copy: '$(Decode-Utf8Base64 '5YaF5a655Y+v6IO95bey6KKr5L2c6ICF5Yig6Zmk5oiW5Y+W5raI5YWs5byA77yM6K+36L+U5Zue6LCx5paH5YiX6KGo5p+l55yL5YW25LuW5YaF5a6544CC')'",
|
|
"action: '$(Decode-Utf8Base64 '6L+U5Zue6LCx5paH5YiX6KGo')'",
|
|
"actionMode: 'back'"
|
|
)) {
|
|
Assert-Contains $catalog $expected "F05 expired-state catalog contract missing: $expected"
|
|
}
|
|
|
|
foreach ($expected in @(
|
|
'page.value.states?.[moduleState.value]',
|
|
'@click="handleStateAction"',
|
|
'const handleStateAction = () => {',
|
|
'stateCopy.value.actionMode === "back"',
|
|
'uni.navigateBack()'
|
|
)) {
|
|
Assert-Contains $module $expected "ModulePage state override contract missing: $expected"
|
|
}
|
|
|
|
Write-Output 'F05-EXPIRED-STATE-CONTRACT PASS'
|