Files
MyGoNavi/frontend/src/components/QueryEditorTransactionSettings.test.tsx
Syngnat faa7ed1ae2 🐛 fix(query-editor): 修复选择器与事务提示浮层
- host 和数据库下拉选项关闭原生 title,避免和自定义 Tooltip 重复显示
- 事务模式说明默认向上弹出,并保留边界自动避让
- 移除下拉打开时强制隐藏事务说明的状态控制
- 补充工具栏和事务设置回归断言
2026-06-26 10:06:56 +08:00

63 lines
1.8 KiB
TypeScript

import React from 'react';
import { act, create, type ReactTestRenderer } from 'react-test-renderer';
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
import QueryEditorTransactionSettings from './QueryEditorTransactionSettings';
const antdState = vi.hoisted(() => ({
selectProps: [] as any[],
tooltipProps: [] as any[],
}));
vi.mock('antd', () => ({
Select: (props: any) => {
antdState.selectProps.push(props);
return <button type="button">{props.value}</button>;
},
Tooltip: (props: any) => {
antdState.tooltipProps.push(props);
return <div>{props.children}</div>;
},
}));
vi.mock('../i18n/provider', () => ({
useOptionalI18n: () => ({
t: (key: string, params?: Record<string, unknown>) => params?.seconds ? `${params.seconds}s后提交` : key,
}),
}));
const latestTooltipProps = () => antdState.tooltipProps[antdState.tooltipProps.length - 1];
describe('QueryEditorTransactionSettings', () => {
let renderer: ReactTestRenderer | null = null;
beforeEach(() => {
antdState.selectProps = [];
antdState.tooltipProps = [];
});
afterEach(() => {
renderer?.unmount();
renderer = null;
});
it('keeps the DBeaver reference tooltip above the transaction mode select', () => {
act(() => {
renderer = create(
<QueryEditorTransactionSettings
isV2Ui
commitMode="manual"
autoCommitDelayMs={0}
onCommitModeChange={vi.fn()}
onAutoCommitDelayMsChange={vi.fn()}
/>,
);
});
expect(latestTooltipProps().placement).toBe('topLeft');
expect(latestTooltipProps()).not.toHaveProperty('autoAdjustOverflow', false);
expect(latestTooltipProps()).not.toHaveProperty('open');
expect(antdState.selectProps[0]).not.toHaveProperty('onOpenChange');
});
});