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', () => { // 依赖失败/提交走 adapter:POST /{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, '发布模型保持纯逻辑') })