27 lines
981 B
JavaScript
27 lines
981 B
JavaScript
const assert = require('node:assert/strict');
|
|
const { readFileSync } = require('node:fs');
|
|
const { test } = require('node:test');
|
|
const ts = require('typescript');
|
|
|
|
const source = ts.createSourceFile(
|
|
'MonitoringAccountList.tsx',
|
|
readFileSync(`${__dirname}/../src/components/accounts/MonitoringAccountList.tsx`, 'utf8'),
|
|
ts.ScriptTarget.Latest,
|
|
true,
|
|
ts.ScriptKind.TSX,
|
|
);
|
|
|
|
test('监控账号行由 Listy 独占内边距和分隔线,保留详情入口', () => {
|
|
let itemRender;
|
|
function visit(node) {
|
|
if (ts.isJsxAttribute(node) && node.name.getText(source) === 'itemRender') itemRender = node;
|
|
ts.forEachChild(node, visit);
|
|
}
|
|
visit(source);
|
|
assert.ok(itemRender, '应使用 Listy itemRender');
|
|
const row = itemRender.getText(source);
|
|
assert.match(row, /history\.push\(`\/accounts\/monitoring\/\$\{row\.id\}`\)/);
|
|
assert.match(row, /<div style=\{\{ cursor: 'pointer' \}\}/);
|
|
assert.doesNotMatch(row, /padding|borderBottom|rowHoverStyle/);
|
|
});
|