feat: add QTT-001 testscript

This commit is contained in:
손승우
2022-11-09 14:09:15 +09:00
parent 7fa7f6b7ea
commit 1267c96de9
4 changed files with 1157 additions and 8 deletions

View File

@@ -6659,6 +6659,57 @@
"integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
"dev": true
},
"cockroachdb": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/cockroachdb/-/cockroachdb-1.0.3.tgz",
"integrity": "sha512-hpxTiXnE002uE6jCqZiwCUtX84qntaMm/cx+QFgFXAaLYh0MZPWW1hJQawHaxpqBvDXOJ8Ejsf26JaXSZTZmUQ==",
"requires": {
"buffer-writer": "1.0.1",
"packet-reader": "0.3.1",
"pg-connection-string": "0.1.3",
"pg-types": "~1.12.1",
"pgpass": "1.x",
"semver": "4.3.2"
},
"dependencies": {
"buffer-writer": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.1.tgz",
"integrity": "sha512-I5M7UuSeDn5aQR2BSH2+270w9qdd2Rd5LB/XhTcIRdSmeLueMNlY3BaMoHtoASmjEQf/NOAqMIZaoAMSpomW6w=="
},
"packet-reader": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-0.3.1.tgz",
"integrity": "sha512-5hN3f+rVT3PRjNI+GYUKTolUo5Yhypmo97D5+6On6L4bVhnno5wzGTT3agB9u7llRfw6pEV4I1/obWSXTKDY1w=="
},
"pg-connection-string": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-0.1.3.tgz",
"integrity": "sha512-i0NV/CrSkFTaiOQs9AGy3tq0dkSjtTd4d7DfsjeDVZAA4aIHInwfFEmriNYGGJUfZ5x6IAC/QddoUpUJjQAi0w=="
},
"pg-types": {
"version": "1.12.1",
"resolved": "https://registry.npmjs.org/pg-types/-/pg-types-1.12.1.tgz",
"integrity": "sha512-7oR1vHzQdSlqa81S8476iSoUYQc6obearJ6RUuRB1OOdGDz9pDHLxmgYgcXCDL+XWHSocYQqwC/GDnwtKhGbWg==",
"requires": {
"postgres-array": "~1.0.0",
"postgres-bytea": "~1.0.0",
"postgres-date": "~1.0.0",
"postgres-interval": "^1.1.0"
}
},
"postgres-array": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-1.0.3.tgz",
"integrity": "sha512-5wClXrAP0+78mcsNX3/ithQ5exKvCyK5lr5NEEEeGwwM6NJdQgzIJBVxLvRW+huFpX92F2QnZ5CcokH0VhK2qQ=="
},
"semver": {
"version": "4.3.2",
"resolved": "https://registry.npmjs.org/semver/-/semver-4.3.2.tgz",
"integrity": "sha512-VyFUffiBx8hABJ9HYSTXLRwyZtdDHMzMtFmID1aiNAD2BZppBmJm0Hqw3p2jkgxP9BNt1pQ9RnC49P0EcXf6cA=="
}
}
},
"code-point-at": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
@@ -11513,8 +11564,7 @@
"jsonparse": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
"integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
"dev": true
"integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg=="
},
"jsonpath-plus": {
"version": "5.1.0",
@@ -12701,6 +12751,24 @@
"integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
"dev": true
},
"mysql": {
"version": "2.18.1",
"resolved": "https://registry.npmjs.org/mysql/-/mysql-2.18.1.tgz",
"integrity": "sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==",
"requires": {
"bignumber.js": "9.0.0",
"readable-stream": "2.3.7",
"safe-buffer": "5.1.2",
"sqlstring": "2.3.1"
},
"dependencies": {
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
}
}
},
"mysql2": {
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/mysql2/-/mysql2-2.3.3.tgz",
@@ -16101,6 +16169,11 @@
"tar": "^6.1.11"
}
},
"sqlstring": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz",
"integrity": "sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ=="
},
"ssri": {
"version": "8.0.1",
"resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
@@ -16485,6 +16558,25 @@
"swagger-ui-dist": ">=4.11.0"
}
},
"sybase": {
"version": "1.2.3",
"resolved": "https://registry.npmjs.org/sybase/-/sybase-1.2.3.tgz",
"integrity": "sha512-69dtkzLPjWLQknP0x6gGud9WKZs7Ujdo8EEl4nwN/fhLrgXsgMxbGkT2rQfdw1kg2lbJvbpBSbA2vm0rWRxs6g==",
"requires": {
"JSONStream": "^1.3.5"
},
"dependencies": {
"JSONStream": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz",
"integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==",
"requires": {
"jsonparse": "^1.2.0",
"through": ">=2.2.7 <3"
}
}
}
},
"symbol-observable": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz",

View File

@@ -129,7 +129,6 @@ export class ConnectionService {
const resultObj = { status: null, message: null, datas: [], fields: [] };
try {
const queryRes = await knex.raw(queryExecuteDto.query);
// bigquery, snowflake
if (typeof knex.client.config.client === 'function') {
switch (knex.client.config.client.name) {

View File

@@ -1,5 +1,50 @@
describe('MySQL 연동 확인', () => {
it('test', () => {
return expect(1).toBe(1);
});
import { Test, TestingModule } from '@nestjs/testing';
import { TypeOrmModule } from '@nestjs/typeorm';
import { getTestMysqlModule } from '../util/get-test-mysql.module';
import { Database } from "../../src/database/entities/database.entity";
import { ConfigModule } from '@nestjs/config';
import { Dataset } from "@google-cloud/bigquery";
import { TableQuery } from "../../src/widget/tabel-query/entity/table-query.entity";
import { DatabaseType } from "../../src/database/entities/database_type.entity";
import { ConnectionService } from "../../src/connection/connection.service";
import * as TestConnectionInfo from "../../test_connect_info.json";
describe('Check MYSQL Connection', () => {
let connectService: ConnectionService;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
imports: [
ConfigModule.forRoot({
isGlobal: true,
envFilePath: '.env.dev',
}),
getTestMysqlModule(),
TypeOrmModule.forFeature([Database, Dataset, TableQuery, DatabaseType]),
],
providers: [ConnectionService],
}).compile();
connectService = module.get<ConnectionService>(ConnectionService);
}, 10000);
const dbName = ['mysql', 'maria', 'pg', 'oracle', 'cockroach', 'redshift', 'bigquery', 'sqlite', 'mssql', 'snowflake']
const config = {
status: "SUCCESS",
data: {
"message": "success"
}
}
for(let i = 0; i < dbName.length; i ++){
it(`QTT-001-${String(i + 1).padStart(2,'0')}`, async() => {
const result = await connectService.testConnection(Object.create(TestConnectionInfo[dbName[i]]));
return expect(result).toStrictEqual(config);
});
}
});

1015
package-lock.json generated

File diff suppressed because it is too large Load Diff