Files
crawler-plugin/admin-frontend-vue/tests/task-135.test.ts
T
huangzd1997 883625a072 task-135(记录与版本中心): 实现数字人版本发布操作
新增 digitalhuman-release.ts(可发布判定与确认) 与 releaseDigitalHumanVersion
(POST /{version}/release)。

TDD: task-135.test.ts 8 用例 RED→GREEN。
2026-09-05 17:40:32 +08:00

50 lines
2.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import test from 'node:test'
import assert from 'node:assert/strict'
import { readSource } from './helpers.ts'
import { canReleaseDigitalHumanVersion, releaseDigitalHumanConfirmText } from '../src/pages/records/digitalhuman-release.ts'
test('test_task_135_dh_release_normal_primary_path', () => {
// 正常主路径:草稿版本可发布并给出确认文案。
assert.equal(canReleaseDigitalHumanVersion('DRAFT'), true)
assert.equal(releaseDigitalHumanConfirmText('1.0.0'), '确定发布数字人版本 1.0.0 吗?')
})
test('test_task_135_dh_release_normal_variant_input', () => {
// 正常变体:已发布版本不再提示可发布。
assert.equal(canReleaseDigitalHumanVersion('RELEASED'), false)
})
test('test_task_135_dh_release_repeated_is_idempotent', () => {
// 正常重复:文案稳定。
assert.equal(releaseDigitalHumanConfirmText('1.0.0'), releaseDigitalHumanConfirmText('1.0.0'))
})
test('test_task_135_dh_release_boundary_empty_input', () => {
// 边界空值:空版本不产出确认。
assert.equal(releaseDigitalHumanConfirmText(''), null)
})
test('test_task_135_dh_release_boundary_single_item', () => {
// 边界单元素:未知状态按不可发布处理。
assert.equal(canReleaseDigitalHumanVersion('x'), false)
})
test('test_task_135_dh_release_boundary_limit_or_missing_field', () => {
// 边界上限/缺字段:小写归一。
assert.equal(canReleaseDigitalHumanVersion('draft'), true)
})
test('test_task_135_dh_release_invalid_input_rejected', () => {
// 异常输入:非字符串状态不可发布。
assert.equal(canReleaseDigitalHumanVersion(null as unknown as string), false)
})
test('test_task_135_dh_release_dependency_failure_returns_actionable_message', () => {
// 依赖失败/提交走 adapterPOST /{version}/release。
const api = readSource('src/pages/records/digitalhuman-api.ts')
assert.match(api, /releaseDigitalHumanVersion/)
assert.match(api, /\/release/)
const model = readSource('src/pages/records/digitalhuman-release.ts')
assert.equal(/axios|http\.|vue/.test(model), false, '发布模型保持纯逻辑')
})