import test from 'node:test' import assert from 'node:assert/strict' import { readSource } from './helpers.ts' // module 13 task 255:品牌数据库(不符合ASIN)页对齐 admin panel-invalid-asin-data —— // 分组筛选、来源列用 recordSourceLabel、自动导入记录编辑隐藏分组、删除文案用模型辅助。 test('test_task_255_invalidasin_normal_primary_path', () => { const page = readSource('src/pages/asin/AsinInvalidPage.vue') assert.match(page, /分组/, '筛选需含分组下拉') assert.match(page, /recordSourceLabel/, '来源列需用 recordSourceLabel 文案') assert.match(page, /source-text/, '来源用旧版源样式(自绘)') }) test('test_task_255_invalidasin_normal_variant_input', () => { const page = readSource('src/pages/asin/AsinInvalidPage.vue') assert.match(page, /invalidAsinDeleteText/, '删除需用模型删除文案') assert.match(page, /includeGroup/, '更新提交需按来源决定是否迁组') assert.match(page, /MANUAL/, '需判断来源是否为手动新增') }) test('test_task_255_invalidasin_normal_repeated_operation_is_idempotent', () => { const page = readSource('src/pages/asin/AsinInvalidPage.vue') assert.ok(page.includes('分组')) assert.ok(page.includes('分组')) }) test('test_task_255_invalidasin_boundary_empty_input', () => { const page = readSource('src/pages/asin/AsinInvalidPage.vue') assert.match(page, /filter\.brand|品牌/, '需保留品牌筛选') assert.match(page, /filter\.dataValue|ASIN/, '需保留 ASIN 筛选') assert.match(page, /requireGroup/, '新建需校验分组必选') }) test('test_task_255_invalidasin_boundary_single_item', () => { // 边界:自动导入(非 MANUAL)记录编辑时不应展示分组字段(admin 语义)。 const page = readSource('src/pages/asin/AsinInvalidPage.vue') assert.match(page, /editingSource|recordSource/, '需记录当前编辑行来源以控制分组显隐') }) test('test_task_255_invalidasin_boundary_limit_or_missing_field', () => { const api = readSource('src/pages/invalidasin/invalid-asin-api.ts') assert.match(api, /groupId/, '查询适配需支持分组筛选参数') }) test('test_task_255_invalidasin_invalid_input_rejected', () => { const page = readSource('src/pages/asin/AsinInvalidPage.vue') assert.equal(page.includes('MANUAL') && page.includes('recordSourceLabel'), true, '来源展示必须统一走映射') }) test('test_task_255_invalidasin_dependency_failure_returns_actionable_message', () => { // 依赖失败:模型已提供记录来源与删除文案纯函数,页面不得自造不一致文案。 const model = readSource('src/pages/invalidasin/invalid-asin-model.ts') assert.match(model, /recordSourceLabel/, '模型需提供来源标签函数') assert.match(model, /手动新增/, '手动新增文案存在') })