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, /