import { connectionCanEdit, resolveUrlInfo, splitUrl, getJdbcDatabaseType } from '../app.service'; const connection = { connectionId: '', connectionType: '', connectionName: '', connectionData: '', }; /** * test_author_alan */ 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 */ test('DEC-10992 数据连接名称带-', () => { expect(resolveUrlInfo('jdbc:sqlserver://192.168.17.111:1433;databaseName=L-Pick-DAS-MengYan')).toEqual({ host: '192.168.17.111', port: '1433', databaseName: 'L-Pick-DAS-MengYan', urlInfo: '', }); }); test('解析url', () => { expect(resolveUrlInfo('jdbc:postgresql://endpoint:port/database')).toEqual({ host: 'endpoint', port: '', databaseName: 'database', urlInfo: '', }); expect(resolveUrlInfo('jdbc:pivotal:greenplum://hostname:port;dbname')).toEqual({ host: 'hostname', port: '', databaseName: 'dbname', urlInfo: '', }); expect(resolveUrlInfo('jdbc:mysql://hostname:22/database')).toEqual({ host: 'hostname', port: '22', databaseName: 'database', urlInfo: '', }); }); /** * test_author_alan */ test('BI-51537 判断数据连接是否有权限', () => { expect(connectionCanEdit({ ...connection, })).toEqual(true); expect(connectionCanEdit({ ...connection, privilegeDetailBeanList: null, })).toEqual(true); expect(connectionCanEdit({ ...connection, privilegeDetailBeanList: [ { privilegeType: 4, privilegeValue: 2, }, ], })).toEqual(true); expect(connectionCanEdit({ ...connection, privilegeDetailBeanList: [ { privilegeType: 4, privilegeValue: 1, }, ], })).toEqual(false); expect(connectionCanEdit({ ...connection, privilegeDetailBeanList: [ { privilegeType: 2, privilegeValue: 1, }, ], })).toEqual(false); });