diff --git a/src/modules/__test__/app.test.ts b/src/modules/__test__/app.test.ts index 5cea84c..9ea92be 100644 --- a/src/modules/__test__/app.test.ts +++ b/src/modules/__test__/app.test.ts @@ -1,4 +1,4 @@ -import { connectionCanEdit, resolveUrlInfo, splitUrl } from '../app.service'; +import { connectionCanEdit, resolveUrlInfo, splitUrl, getJdbcDatabaseType } from '../app.service'; const connection = { connectionId: '', connectionType: '', @@ -12,6 +12,14 @@ const connection = { test('DEC-11030 拼接url', () => { expect(splitUrl('localhost', '22', 'dbname', 'jdbc:pivotal:greenplum://hostname:port;dbname')).toEqual('jdbc:pivotal:greenplum://localhost:22;dbname'); }); +/** + * test_author_alan + */ +test('BI-56355 如果数据库类型和驱动都为空,则为其他jdbc', () => { + expect(getJdbcDatabaseType('', '').databaseType).toEqual('otherJDBC'); + expect(getJdbcDatabaseType('mysql', '').databaseType).toEqual('mysql'); + expect(getJdbcDatabaseType('', 'com.mysql.jdbc.Driver').databaseType).toEqual('mysql'); +}); /** * test_author_alan diff --git a/src/modules/app.service.ts b/src/modules/app.service.ts index bcc6268..fc18f77 100644 --- a/src/modules/app.service.ts +++ b/src/modules/app.service.ts @@ -27,9 +27,11 @@ export function getPluginWidgetEdit(plugin: string) { // 由于database可能为空,所以为了兼容平台和设计器,需要根据driver来判断数据库类型 export function getJdbcDatabaseType(database: string, driver: string): DatabaseType { + if (!database && !driver) { + return DATA_BASE_TYPES_OTHER; + } let databaseType = null; // KERNEL-1655 兼容旧版 由于旧版设计器创建的数据连接database都为other,所以要根据driber来判断数据类型 - // DEC-10872 不能过滤other,因为新版数据连接创建的其他jdbc也是other类型,会混淆,需要和后端讨论一个最佳的解决方案。 if (database && database !== 'other' && DATA_BASE_TYPES.some(item => item.databaseType === database)) { databaseType = DATA_BASE_TYPES.find(item => item.databaseType === database); } else {