import test from 'node:test' import assert from 'node:assert/strict' import { readSource } from './helpers.ts' /** 对齐 admin.js:1819-1860 renderShopDataRecordTable:每条任务一张卡片(店铺名头 + 任务号/状态 + 分组/最新/国家/文件行 + 下载文件/删除)。 */ test('align_shop_data_cards_per_task', () => { const page = readSource('src/pages/tasks/ShopDataTasksPage.vue') // 每任务一张卡:以 resultRow 迭代渲染卡片(宫格分页后绑定 pagedResultRows),不再按店铺聚合。 assert.match(page, /v-for="row in pagedResultRows"/, '逐任务卡片渲染') assert.doesNotMatch(page, /v-for="group in groups"/, '去掉按店铺聚合卡片') // 卡片结构:店铺名头 + 任务 id/状态 + 分组/最新/国家/文件 信息行 + 下载文件/删除。 assert.match(page, /任务 {{ row\.taskId \|\| row\.taskNo \|\| row\.resultId }}/, '卡片显示任务 id(file_task.id 短数字,与桌面端一致)') assert.match(page, />分组最新国家文件 { const page = readSource('src/pages/tasks/ShopDataTasksPage.vue') // 参考 selectable = file_ready && resultId>0(不附加终态约束)。 assert.match(page, /fileReady/, '可选依赖 fileReady') assert.doesNotMatch(page, /fileReady && isTerminalStatus/, '可选不再附加终态约束') assert.match(page, /全选可下载/, '全选语义保留') }) test('align_shop_data_cards_empty_text', () => { const page = readSource('src/pages/tasks/ShopDataTasksPage.vue') assert.match(page, /暂无符合条件的店铺数据记录/, '空态文案对齐参考') }) test('align_shop_data_permission_table_pagination', () => { // 权限配置弹窗用户表全量渲染无分页:补共享 OldPagination(10/20/50/100)。 const page = readSource('src/pages/tasks/ShopDataTasksPage.vue') assert.match(page, /:data="pagedPermissionItems"/, '权限表绑定分页切片') assert.match(page, /:total="permissionItems\.length"/, '权限表有分页器') })