Files
docs/悦/货代SAAS平台后台/tests/verify-domestic-inventory-management.cjs
T
2026-08-12 19:11:56 +08:00

51 lines
3.3 KiB
JavaScript

#!/usr/bin/env node
const fs = require('node:fs');
const path = require('node:path');
const html = fs.readFileSync(path.resolve(__dirname, '..', '货代SaaS平台原型.html'), 'utf8');
const failures = [];
const requireMatch = (pattern, label, source = html) => {
if (!pattern.test(source)) failures.push(`missing ${label}`);
};
const domesticNavStart = html.indexOf('<div class="sidebar-item" data-menu="inbound">');
const domesticNavEnd = html.indexOf('<div class="sidebar-item" data-menu="fba-return">', domesticNavStart);
const domesticNav = domesticNavStart >= 0 && domesticNavEnd > domesticNavStart
? html.slice(domesticNavStart, domesticNavEnd)
: '';
requireMatch(/switchPage\('domestic-stock-management',this\)[^>]*>库存管理<\/div>/, '国内仓库存管理导航', domesticNav);
requireMatch(/id="page-domestic-stock-management"/, '国内仓独立库存管理页面');
const domesticPageStart = html.indexOf('<div class="page" id="page-domestic-stock-management">');
const domesticPageEnd = html.indexOf('<!-- ==================== PALLET MANAGEMENT', domesticPageStart);
const domesticPage = domesticPageStart >= 0 && domesticPageEnd > domesticPageStart
? html.slice(domesticPageStart, domesticPageEnd)
: '';
requireMatch(/class="inventory-management-tab active"[^>]*data-domestic-stock-tab="purchase"[^>]*aria-selected="true"[^>]*>采购库存<\/button>/, '采购库存默认激活页签', domesticPage);
if (/data-domestic-stock-tab="(?:return|hold)"/.test(domesticPage)) failures.push('国内仓仍显示退货库存或暂扣库存页签');
requireMatch(/class="inventory-management-panel active" id="domestic-panel-purchase"[^>]*aria-hidden="false"/, '采购库存默认激活面板', domesticPage);
requireMatch(/id="domestic-stock-panels"/, '国内仓库存内容容器');
requireMatch(/id="dom-frs-wh"/, '国内仓退货库存筛选控件');
requireMatch(/id="dom-stk-wh"/, '国内仓暂扣库存筛选控件');
requireMatch(/id="dom-ps-wh"/, '国内仓采购库存筛选控件');
requireMatch(/function switchDomesticStockTab\(/, '国内仓页签切换函数');
requireMatch(/function renderDomesticReturnStock\(/, '国内仓退货库存渲染函数');
requireMatch(/function renderDomesticHoldStock\(/, '国内仓暂扣库存渲染函数');
requireMatch(/function renderDomesticPurchaseStock\(/, '国内仓采购库存渲染函数');
requireMatch(/const domesticReturnStockData\s*=\s*fbaReturnStockData\.map/, '国内仓退货库存数据副本');
requireMatch(/const domesticHoldStockData\s*=\s*overseasStockData\.map/, '国内仓暂扣库存数据副本');
requireMatch(/const domesticPurchaseStockData\s*=\s*purchaseStockData\.map/, '国内仓采购库存数据副本');
requireMatch(/page==='domestic-stock-management'\)switchDomesticStockTab\('purchase'\)/, '国内仓默认进入采购库存');
requireMatch(/function openDomesticPurchaseStockDetail\(/, '国内仓采购库存详情入口');
requireMatch(/purchaseStockDetailContext/, '采购库存详情来源状态');
requireMatch(/switchDomesticStockTab\('purchase'\)/, '国内仓采购库存详情返回页签');
if (failures.length) {
console.error('DOMESTIC_INVENTORY_MANAGEMENT_CHECK_FAIL');
failures.forEach((failure) => console.error(`- ${failure}`));
process.exitCode = 1;
} else {
console.log('DOMESTIC_INVENTORY_MANAGEMENT_CHECK_PASS');
}