fix(accounts): match network exit select to profile field size
This commit is contained in:
@@ -74,7 +74,6 @@ export default function RebindEnvironment({ binding, disabled, onRebound, onErro
|
||||
placeholder={exitsError ? '出口列表不可用' : '选择目标出口'}
|
||||
disabled={disabled || exitsError || busy}
|
||||
aria-label="目标网络出口"
|
||||
size="small"
|
||||
/>
|
||||
<Button size="small" type="primary" disabled={disabled || exitsError || unchanged || busy} loading={busy} onClick={rebind}>
|
||||
保存网络出口
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
const assert = require('node:assert/strict');
|
||||
const { readFileSync } = require('node:fs');
|
||||
const { test } = require('node:test');
|
||||
const ts = require('typescript');
|
||||
|
||||
function source(path) {
|
||||
return ts.createSourceFile(path, readFileSync(`${__dirname}/../src/${path}`, 'utf8'), ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);
|
||||
}
|
||||
function find(ast, predicate) {
|
||||
let result;
|
||||
function visit(node) {
|
||||
if (!result && predicate(node)) result = node;
|
||||
ts.forEachChild(node, visit);
|
||||
}
|
||||
visit(ast);
|
||||
assert.ok(result, '目标控件必须存在');
|
||||
return result;
|
||||
}
|
||||
function size(element) {
|
||||
return element.attributes.properties.find(prop => prop.name?.getText() === 'size')?.initializer?.getText();
|
||||
}
|
||||
|
||||
test('网络出口下拉框与业务状态使用同一默认大小,保存按钮保持 small', () => {
|
||||
const edit = source('pages/accounts/$id/edit.tsx');
|
||||
const status = find(edit, node => ts.isJsxElement(node) && node.openingElement.tagName.getText() === 'Form.Item' &&
|
||||
node.openingElement.attributes.properties.some(prop => prop.name?.getText() === 'name' && prop.initializer?.text === 'business_status'));
|
||||
const statusSelect = find(status, node => ts.isJsxSelfClosingElement(node) && node.tagName.getText() === 'Select');
|
||||
const exit = source('components/accounts/RebindEnvironment.tsx');
|
||||
const exitSelect = find(exit, node => ts.isJsxSelfClosingElement(node) && node.tagName.getText() === 'Select');
|
||||
assert.equal(size(statusSelect), undefined);
|
||||
assert.equal(size(exitSelect), size(statusSelect));
|
||||
const save = find(exit, node => ts.isJsxOpeningElement(node) && node.tagName.getText() === 'Button');
|
||||
assert.equal(size(save), '"small"');
|
||||
});
|
||||
Reference in New Issue
Block a user