import test from 'node:test' import assert from 'node:assert/strict' import { readSource } from './helpers.ts' import { toShopDataQuery } from '../src/pages/tasks/shop-data-filter.ts' import { toShopDataZipRequest } from '../src/pages/tasks/shop-data-download.ts' // module 13 task 267:店铺数据任务筛选/批量下载/权限/合计对齐。 test('test_task_267_filter_normal_primary_path', () => { const page = readSource('src/pages/tasks/ShopDataTasksPage.vue') assert.match(page, /店铺/, '需店铺模糊筛选') assert.match(page, /分组/, '需分组模糊筛选') assert.match(page, /国家/, '需国家筛选') assert.match(page, /创建开始/, '需创建开始时间') assert.match(page, /创建结束/, '需创建结束时间') assert.match(page, /查询/, '需查询') assert.match(page, /reset/, '需重置') }) test('test_task_267_filter_normal_variant_input', () => { const query = toShopDataQuery({ shopName: ' 店A ', groupName: ' 组1 ', country: 'DE', createdFrom: '', createdTo: '2026-09-05T09:30' }, 1, 20) assert.equal(query.shop_name, '店A') assert.equal(query.group_name, '组1') assert.equal(query.country, 'DE') assert.equal(query.created_to, '2026-09-05T09:30') assert.equal(query.created_from, undefined, '空日期不下发') }) test('test_task_267_batch_normal_primary_path', () => { const page = readSource('src/pages/tasks/ShopDataTasksPage.vue') assert.match(page, /全选可下载/, '全选可下载文件') assert.match(page, /批量下载/, '批量下载') assert.match(page, /requestShopDataZipDownload/, '批量走打包端点') }) test('test_task_267_batch_boundary_empty_input', () => { assert.deepEqual(toShopDataZipRequest(['3', '3', 'abc', 4]), { result_ids: [3, 4] }, '过滤非法/去重') const page = readSource('src/pages/tasks/ShopDataTasksPage.vue') assert.match(page, /请先勾选要下载的结果文件/, '未勾选提示') }) test('test_task_267_batch_boundary_limit_or_missing_field', () => { const page = readSource('src/pages/tasks/ShopDataTasksPage.vue') assert.match(page, /包内错误清单/, '部分失败提示包内错误清单') }) test('test_task_267_total_normal_primary_path', () => { const page = readSource('src/pages/tasks/ShopDataTasksPage.vue') assert.match(page, /家店铺/, '合计为店铺数') assert.match(page, /结果文件/, '展示结果文件数') }) test('test_task_267_permission_normal_primary_path', () => { const page = readSource('src/pages/tasks/ShopDataTasksPage.vue') assert.match(page, /权限配置/, '权限入口') assert.match(page, /fetchShopDataTaskPermissionUsers/, '权限加载') assert.match(page, /saveShopDataTaskPermissions/, '权限保存') }) test('test_task_267_dependency_failure_returns_actionable_message', () => { const api = readSource('src/pages/tasks/shop-data-api.ts') assert.match(api, /\/download-zip/) assert.match(api, /\/api\/admin\/shop-data-crawl-task-permissions/) })