31 lines
1.4 KiB
JavaScript
31 lines
1.4 KiB
JavaScript
const assert = require('node:assert/strict');
|
|
const fs = require('node:fs');
|
|
const path = require('node:path');
|
|
|
|
const root = path.resolve(__dirname, '..');
|
|
const appJs = fs.readFileSync(path.join(root, 'prototype-src', 'app.js'), 'utf8');
|
|
|
|
function extractBetween(startMarker, endMarker, label) {
|
|
const start = appJs.indexOf(startMarker);
|
|
assert.notEqual(start, -1, `${label}起始标记不存在`);
|
|
const end = appJs.indexOf(endMarker, start + startMarker.length);
|
|
assert.notEqual(end, -1, `${label}结束标记不存在`);
|
|
return appJs.slice(start, end);
|
|
}
|
|
|
|
const renderCtListSource = extractBetween(
|
|
'function renderCtList()',
|
|
'function ctUploadDoc(',
|
|
'货柜列表渲染片段',
|
|
);
|
|
|
|
assert.ok(/class="ct-fleet-control"/.test(renderCtListSource), '码头车队控件容器缺失');
|
|
assert.ok(/class="ct-fleet-sel"/.test(renderCtListSource), '码头车队选择框缺失');
|
|
assert.ok(!/class="ct-fleet-region-sel"/.test(renderCtListSource), '码头车队不应保留国内/海外选择框');
|
|
assert.ok(!/const regionOpts=/.test(renderCtListSource), '码头车队不应保留国内/海外选项');
|
|
assert.ok(!/ctSetFleetRegion/.test(renderCtListSource), '码头车队渲染不应绑定区域变更事件');
|
|
|
|
assert.ok(!appJs.includes('function ctSetFleetRegion('), '码头车队区域 setter 应移除');
|
|
|
|
console.log('货柜列表码头车队单选择框验证通过');
|