Files

50 lines
2.1 KiB
TypeScript
Raw Permalink 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, '发布模型保持纯逻辑')
})