35 lines
1.3 KiB
JavaScript
35 lines
1.3 KiB
JavaScript
const assert = require('node:assert/strict');
|
||
const { readFileSync } = require('node:fs');
|
||
const { test } = require('node:test');
|
||
const ts = require('typescript');
|
||
|
||
// 表格统一形态:固定表头(scroll.y)+ sticky 兜底 + 横向滚动 + 操作列固定右侧 + 分页。
|
||
const files = [
|
||
'src/components/accounts/MonitoringAccountList.tsx',
|
||
'src/components/accounts/AccountManagementList.tsx',
|
||
'src/pages/accounts/import.tsx',
|
||
'src/pages/tasks/index.tsx',
|
||
'src/pages/browsers/index.tsx',
|
||
'src/pages/network-exits/index.tsx',
|
||
'src/pages/gateways/index.tsx',
|
||
];
|
||
|
||
for (const file of files) {
|
||
const source = ts.createSourceFile(
|
||
file,
|
||
readFileSync(`${__dirname}/../${file}`, 'utf8'),
|
||
ts.ScriptTarget.Latest,
|
||
true,
|
||
ts.ScriptKind.TSX,
|
||
);
|
||
const code = source.getFullText();
|
||
|
||
test(`${file} 表格使用统一固定表头与分页形态`, () => {
|
||
assert.match(code, /tableScroll\(\d+\)/, '应设置 scroll.x/y(tableScroll)');
|
||
assert.match(code, /sticky/, '应开启表头吸顶兜底');
|
||
assert.match(code, /pagination=\{tablePagination\(\)\}/, '应恢复分页(每页 20,单页隐藏)');
|
||
assert.doesNotMatch(code, /pagination=\{false\}/, '不应再保留 pagination={false}');
|
||
assert.match(code, /\.\.\.fixedRight</, '操作列应固定在右侧');
|
||
});
|
||
}
|