Files
creator-hub/web/tests/monitoring-account-list.test.cjs
T

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/);
});