mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-07-26 16:29:42 +08:00
- 查询编辑器仅预取当前库及 SQL 显式引用库的元数据 - 断开侧边栏连接时主动释放同实例后端缓存连接 - 完善 Redis 连接释放和 Wails 前端绑定 - 修复 SQL Server 存储过程消息结果显示 - 调整查询工具栏布局并补充回归测试 Close #541
65 lines
3.5 KiB
TypeScript
65 lines
3.5 KiB
TypeScript
import React from 'react';
|
|
import { readFileSync } from 'node:fs';
|
|
import { describe, expect, it } from 'vitest';
|
|
|
|
describe('QueryEditorToolbar layout', () => {
|
|
it('keeps the v2 toolbar on a single scrollable row in small windows', () => {
|
|
const toolbarSource = readFileSync(new URL('./QueryEditorToolbar.tsx', import.meta.url), 'utf8');
|
|
const css = readFileSync(new URL('../v2-theme.css', import.meta.url), 'utf8');
|
|
const toolbarCss = css.slice(
|
|
css.indexOf('body[data-ui-version="v2"] .gn-v2-query-toolbar {'),
|
|
css.indexOf('body[data-ui-version="v2"] .gn-v2-query-toolbar-main {'),
|
|
);
|
|
const toolbarMainCss = css.slice(
|
|
css.indexOf('body[data-ui-version="v2"] .gn-v2-query-toolbar-main {'),
|
|
css.indexOf('body[data-ui-version="v2"] .gn-v2-query-toolbar-selects {'),
|
|
);
|
|
|
|
expect(toolbarSource).toContain('gn-v2-query-toolbar-main');
|
|
expect(toolbarSource).toContain('gn-v2-query-toolbar-actions');
|
|
expect(css).toContain('body[data-ui-version="v2"] .gn-v2-query-toolbar-main');
|
|
expect(toolbarCss).toContain('overflow-x: auto;');
|
|
expect(toolbarCss).toContain('overflow-y: hidden;');
|
|
expect(toolbarCss).toContain('flex-wrap: nowrap;');
|
|
expect(toolbarMainCss).toContain('flex-wrap: nowrap;');
|
|
expect(toolbarMainCss).toContain('min-width: 100%;');
|
|
expect(toolbarMainCss).toContain('width: max-content;');
|
|
expect(css).toContain('body[data-ui-version="v2"] .gn-v2-query-toolbar-actions {');
|
|
expect(css).toContain('body[data-ui-version="v2"] .gn-v2-query-toolbar-action-pair {');
|
|
});
|
|
|
|
it('keeps run and stop buttons separated in the v2 toolbar action group', () => {
|
|
const toolbarSource = readFileSync(new URL('./QueryEditorToolbar.tsx', import.meta.url), 'utf8');
|
|
const css = readFileSync(new URL('../v2-theme.css', import.meta.url), 'utf8');
|
|
|
|
expect(toolbarSource).toContain('gn-v2-query-toolbar-action-group');
|
|
expect(toolbarSource).not.toContain('Space.Compact');
|
|
expect(css).toContain('body[data-ui-version="v2"] .gn-v2-query-toolbar-action-group {');
|
|
expect(css).not.toContain('.gn-v2-query-toolbar-action-group.ant-btn-group');
|
|
expect(css).toContain('gap: 6px;');
|
|
});
|
|
|
|
it('keeps commit button hover styling in source and v2 css', () => {
|
|
const css = readFileSync(new URL('../v2-theme.css', import.meta.url), 'utf8');
|
|
const commitBaseCss = css.slice(
|
|
css.indexOf('body[data-ui-version="v2"] .gn-v2-query-transaction-commit-button {'),
|
|
css.indexOf('body[data-ui-version="v2"] .gn-v2-query-transaction-commit-button:hover,'),
|
|
);
|
|
const commitHoverCss = css.slice(
|
|
css.indexOf('body[data-ui-version="v2"] .gn-v2-query-transaction-commit-button:hover,'),
|
|
css.indexOf('body[data-ui-version="v2"] .gn-v2-query-transaction-commit-button .gn-v2-toolbar-kbd {'),
|
|
);
|
|
const commitKbdHoverCss = css.slice(
|
|
css.indexOf('body[data-ui-version="v2"] .gn-v2-query-transaction-commit-button:hover .gn-v2-toolbar-kbd,'),
|
|
css.indexOf('body[data-ui-version="v2"] .gn-v2-query-toolbar-icon-action.ant-btn,'),
|
|
);
|
|
|
|
expect(css).toContain('.gn-v2-query-transaction-commit-button:hover');
|
|
expect(css).toContain('.gn-v2-query-transaction-commit-button:focus-visible');
|
|
expect(commitBaseCss).toContain('background: var(--gn-accent-soft) !important;');
|
|
expect(commitHoverCss).not.toContain('background: var(--gn-accent-soft) !important;');
|
|
expect(commitHoverCss).toContain('box-shadow:');
|
|
expect(commitKbdHoverCss).toContain('background:');
|
|
});
|
|
});
|