Files
crawler-plugin/admin-frontend-vue/tests/task-255.test.ts
T

57 lines
2.8 KiB
TypeScript

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, /el-tag/, '来源宜用 tag 形态')
})
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, /手动新增/, '手动新增文案存在')
})