mirror of
https://github.com/Syngnat/GoNavi.git
synced 2026-08-21 16:34:21 +08:00
✨ feat(elasticsearch): 新增 REST 控制台并完善安全执行链
- 复用查询页提供 ES 控制台、模板、AI 辅助及原始与表格结果 - 新增统一解析分类、危险确认、连接保护和受控 REST 执行 - 扩展 driver agent、版本适配、Wails 绑定、多语言与文档 - 修复完整回归中发现的跨平台和前端基线用例问题 Refs #782
This commit is contained in:
@@ -11,6 +11,7 @@ vi.mock('../../wailsjs/go/app/App', () => ({
|
||||
import {
|
||||
buildTableSelectQuery,
|
||||
extractTableSelectColumnNames,
|
||||
isElasticsearchDbType,
|
||||
resolveTableSelectQuery,
|
||||
} from './objectQueryTemplates';
|
||||
|
||||
@@ -46,6 +47,14 @@ describe('buildTableSelectQuery', () => {
|
||||
it('adds a preview limit for RabbitMQ queue browsing', () => {
|
||||
expect(buildTableSelectQuery('rabbitmq', 'orders.events.v1')).toBe('SELECT * FROM "orders.events.v1" LIMIT 100;');
|
||||
});
|
||||
|
||||
it('builds an Elasticsearch match_all request for an index', () => {
|
||||
expect(buildTableSelectQuery('elasticsearch', 'orders-v1')).toBe(
|
||||
'GET /orders-v1/_search\n{\n "query": {\n "match_all": {}\n }\n}\n',
|
||||
);
|
||||
expect(isElasticsearchDbType('elasticsearch')).toBe(true);
|
||||
expect(isElasticsearchDbType('elastic')).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe('extractTableSelectColumnNames', () => {
|
||||
@@ -108,4 +117,14 @@ describe('resolveTableSelectQuery', () => {
|
||||
|
||||
expect(dbGetColumnsMock).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('opens an Elasticsearch index with a match_all request without loading SQL columns', async () => {
|
||||
await expect(resolveTableSelectQuery({
|
||||
dbType: 'elasticsearch',
|
||||
tableName: 'orders-v1',
|
||||
connectionConfig: { type: 'elasticsearch' },
|
||||
})).resolves.toBe('GET /orders-v1/_search\n{\n "query": {\n "match_all": {}\n }\n}\n');
|
||||
|
||||
expect(dbGetColumnsMock).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user