🐛 test(query-editor): 修复 SQL Server 消息结果断言

This commit is contained in:
tianqijiuyun-latiao
2026-06-23 23:44:06 +08:00
parent 86c39ac36f
commit 7962aea008

View File

@@ -386,6 +386,7 @@ vi.mock('@ant-design/icons', () => {
return {
BugOutlined: Icon,
ClearOutlined: Icon,
CopyOutlined: Icon,
PlayCircleOutlined: Icon,
SaveOutlined: Icon,
FormatPainterOutlined: Icon,
@@ -490,6 +491,24 @@ const textContent = (node: any): string =>
.map((item: any) => (typeof item === 'string' ? item : textContent(item)))
.join('');
const queryResultMessageText = (renderer: ReactTestRenderer): string => {
const values: string[] = [];
const walk = (node: any) => {
if (!node) return;
if (Array.isArray(node)) {
node.forEach(walk);
return;
}
if (typeof node !== 'object') return;
if (typeof node.props?.['data-query-result-message-textarea'] === 'string') {
values.push(String(node.props.value || ''));
}
walk(node.children || []);
};
walk(renderer.toJSON());
return values.join('\n');
};
const findButton = (renderer: ReactTestRenderer, text: string) =>
renderer.root.findAll((node) => node.type === 'button' && textContent(node).includes(text))[0];
@@ -5554,7 +5573,7 @@ describe('QueryEditor external SQL save', () => {
});
expect(textContent(renderer!.toJSON())).toContain('消息 1');
expect(textContent(renderer!.toJSON())).toContain("Table 'users'. Scan count 1, logical reads 3.");
expect(queryResultMessageText(renderer!)).toContain("Table 'users'. Scan count 1, logical reads 3.");
expect(dataGridState.latestProps?.columnNames).not.toEqual([]);
});
@@ -5698,7 +5717,7 @@ describe('QueryEditor external SQL save', () => {
});
expect(textContent(renderer!.toJSON())).toContain('消息 2');
expect(textContent(renderer!.toJSON())).toContain("insert into c_dyscript(projectid,name) values (1,'demo')");
expect(queryResultMessageText(renderer!)).toContain("insert into c_dyscript(projectid,name) values (1,'demo')");
expect(textContent(renderer!.toJSON())).not.toContain('影响行数0');
expect(dataGridState.latestProps).toBeNull();
});
@@ -5730,7 +5749,7 @@ describe('QueryEditor external SQL save', () => {
});
expect(textContent(renderer!.toJSON())).toContain('消息 2');
expect(textContent(renderer!.toJSON())).toContain("insert into c_dyscript(projectid,name) values (1,'demo')");
expect(queryResultMessageText(renderer!)).toContain("insert into c_dyscript(projectid,name) values (1,'demo')");
expect(textContent(renderer!.toJSON())).not.toContain('影响行数0');
expect(dataGridState.latestProps).toBeNull();
});