fix(scripts): validate current vehicle task registry

This commit is contained in:
2026-10-03 12:15:12 +08:00
parent eadb431f33
commit 274ecac474
2 changed files with 17 additions and 21 deletions
+12 -16
View File
@@ -201,24 +201,20 @@ Assert-Contains $docsIndex '[测试环境独立任务协作登记](独立任务
Assert-Contains $docsIndex '[开发环境独立任务协作登记](开发环境独立任务协作登记.md)' '文档开发登记入口'
# BEGIN CURRENT TEST REGISTRY CONTRACT
function Assert-TestTaskRegistry([string]$registry) {
Assert-Contains $registry '用户 2026-09-30 的明确请求重新创建' '测试任务明确创建依据'
Assert-Contains $registry '按4个创建,你直接负责汇总' '测试任务精确数量授权'
Assert-Contains $registry '不根据旧台账恢复或派工' '测试任务禁止历史复用'
Assert-Contains $registry 'task_id=01a0d0da-130f-7d43-97b5-9c76abc1b5f1' '测试所属总控'
Assert-Contains $registry 'projectId=c64729ff-6710-43c6-8ef2-d84e9666cc1e' '测试保存项目'
Assert-Contains $registry '`C:/Users/BY-OY/Desktop/code/chongchong-global`' '测试工作目录'
Assert-Contains $registry '不操作开发或生产环境' '测试授权环境边界'
$expectedIds = @(
'01a0f14c-9262-7b43-990a-0e3beddcdd8a',
'01a0f14c-962f-73c3-b1aa-9df555b91586',
'01a0f14c-9a66-7f61-bc2b-6ad17a6c940a',
'01a0f14c-9e33-7a01-903d-a5febd50774b'
)
$actualIds = @([regex]::Matches($registry, '(?m)^\|\s*`([0-9a-f-]{36})`\s*\|') | ForEach-Object { $_.Groups[1].Value })
$current = ($registry -split '(?m)^## 2026-10-03 归档与重新规划')[0]
Assert-Contains $current '## 2026-10-03 车辆管理四任务协作(当前)' '当前车辆协作入口'
Assert-Contains $current '确认创建三个任务,我们当前目标调整一下,加上自己,一共4个任务' '测试任务精确数量授权'
Assert-Contains $current '车辆总控:当前对话 `01a0f19d-3f0b-7ae0-a860-c0d1d2e84475`' '测试所属总控'
Assert-Contains $current '`c64729ff-6710-43c6-8ef2-d84e9666cc1e`' '测试保存项目'
Assert-Contains $current '`C:/Users/BY-OY/Desktop/code/chongchong-global`' '测试工作目录'
Assert-Contains $current '不混入开发环境' '测试授权环境边界'
Assert-Contains $current '其他旧任务仍保持归档,不自动恢复' '测试任务禁止历史恢复'
$expectedIds = @('01a0ffcf-7150-7db3-9d8c-108e568c12b1','01a0ffcf-eea3-7111-b30b-4be63547ac33','01a0ffd0-2a4d-7210-bad8-a790cd965e8a')
$actualIds = @([regex]::Matches($current, '(?m)^\|\s*`([0-9a-f-]{36})`\s*\|') | ForEach-Object { $_.Groups[1].Value })
$script:checked++
if ($actualIds.Count -ne 4 -or @($actualIds | Select-Object -Unique).Count -ne 4 -or
if ($actualIds.Count -ne 3 -or @($actualIds | Select-Object -Unique).Count -ne 3 -or
@($expectedIds | Where-Object { $actualIds -notcontains $_ }).Count -gt 0) {
Add-Failure '测试登记必须恰为本轮明确创建的四个唯一任务'
Add-Failure '测试当前登记必须恰为三个独立任务,加车辆总控共四个任务'
}
Assert-NotContains $registry '当前无登记任务' '测试登记不得混入过期清空状态'
Assert-NotContains $registry '01a0194a-259c-7171-8967-074731a27618' '测试登记历史总控'
@@ -23,12 +23,12 @@ test('actual explicitly authorized TEST registry passes the production validator
assert.deepEqual(failures(registry), [])
})
for (const [name, mutate] of [
['missing creation authorization', s => s.replace('按4个创建,你直接负责汇总', '安排任务')],
['wrong controller', s => s.replace('task_id=01a0d0da-130f-7d43-97b5-9c76abc1b5f1', 'task_id=unknown')],
['wrong project', s => s.replace('projectId=c64729ff-6710-43c6-8ef2-d84e9666cc1e', 'projectId=wrong')],
['missing creation authorization', s => s.replace('确认创建三个任务,我们当前目标调整一下,加上自己,一共4个任务', '安排任务')],
['wrong controller', s => s.replace('车辆总控:当前对话 `01a0f19d-3f0b-7ae0-a860-c0d1d2e84475`', 'task_id=unknown')],
['wrong project', s => s.replace('`c64729ff-6710-43c6-8ef2-d84e9666cc1e`', 'projectId=wrong')],
['wrong workspace', s => s.replace('`C:/Users/BY-OY/Desktop/code/chongchong-global`', '`C:/Users/BY-OY/Desktop/code/chongchong-global-dev`')],
['duplicate task', s => s.replace('01a0f14c-962f-73c3-b1aa-9df555b91586', '01a0f14c-9262-7b43-990a-0e3beddcdd8a')],
['unregistered replacement', s => s.replace('01a0f14c-962f-73c3-b1aa-9df555b91586', '00000000-0000-0000-0000-000000000000')],
['duplicate task', s => s.replace('01a0ffcf-eea3-7111-b30b-4be63547ac33', '01a0ffcf-7150-7db3-9d8c-108e568c12b1')],
['unregistered replacement', s => s.replace('01a0ffcf-eea3-7111-b30b-4be63547ac33', '00000000-0000-0000-0000-000000000000')],
['obsolete empty status', s => s + '\n当前无登记任务'],
['foreign project identity', s => s + '\n6f874ec3-d3b2-49bd-8625-327f4d685f98'],
['retired controller', s => s + '\n01a0194a-259c-7171-8967-074731a27618'],