51 lines
3.3 KiB
JavaScript
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');
|
|
}
|