60%
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
||||
$root = Split-Path -Parent $PSScriptRoot
|
||||
function Read-Utf8([string]$relativePath) {
|
||||
Get-Content -Raw -Encoding UTF8 (Join-Path $root $relativePath)
|
||||
}
|
||||
function Assert-Contains([string]$text, [string]$token, [string]$message) {
|
||||
if (-not $text.Contains($token)) { throw $message }
|
||||
}
|
||||
|
||||
$f02 = Read-Utf8 'pages/family/f02-publish-feed.vue'
|
||||
foreach ($token in @('form.feedType', 'mediaReceipts', 'mediaOssIds', 'form.sortOrder', 'pickAndUploadImage', 'class="required-mark"')) {
|
||||
Assert-Contains $f02 $token "F02 is missing full feed field owner: $token"
|
||||
}
|
||||
|
||||
$f06 = Read-Utf8 'pages/family/f06-article-editor.vue'
|
||||
foreach ($token in @('form.articleSummary', 'coverOssId', 'form.authorName', 'form.sortOrder', 'pickAndUploadImage', 'toConsumerOssId', 'class="required-mark"')) {
|
||||
Assert-Contains $f06 $token "F06 is missing full article field owner: $token"
|
||||
}
|
||||
if ($f06 -match 'v-model="(?:form\.)?coverOssId"') { throw 'F06 must not expose a raw cover OSS ID input' }
|
||||
|
||||
$f07 = Read-Utf8 'pages/family/f07-album-list.vue'
|
||||
foreach ($token in @('form.albumDesc', 'coverOssId', 'form.sortOrder', 'pickAndUploadImage', 'toConsumerOssId', 'class="required-mark"')) {
|
||||
Assert-Contains $f07 $token "F07 is missing full album field owner: $token"
|
||||
}
|
||||
if ($f07 -match 'v-model="(?:form\.)?coverOssId"') { throw 'F07 must not expose a raw cover OSS ID input' }
|
||||
|
||||
foreach ($page in @($f02, $f06, $f07)) {
|
||||
if ($page -match 'v-model="form\.(status|categoryId)"') { throw 'Family create forms must not ask users to enter status or category codes' }
|
||||
if ($page -match 'placeholder="[^"]*(分类 ID|状态码|例如:0)') { throw 'Family create forms must not expose raw code placeholders' }
|
||||
}
|
||||
|
||||
$fullWidthOptionalLabel = [string]([char]0xff08) + [char]0x9009 + [char]0x586b + [char]0xff09
|
||||
$asciiOptionalLabel = '(' + [char]0x9009 + [char]0x586b + ')'
|
||||
foreach ($page in @($f02, $f06, $f07)) {
|
||||
if ($page.Contains($fullWidthOptionalLabel) -or $page.Contains($asciiOptionalLabel)) { throw 'Family create forms must not label optional fields as optional' }
|
||||
}
|
||||
|
||||
Write-Output 'FAMILY-CREATE-PAGES-CONTRACT PASS'
|
||||
Reference in New Issue
Block a user