mirror of
https://github.com/hedgedoc/hedgedoc.git
synced 2025-04-11 03:28:42 +00:00
test: support running e2e tests with mariadb
Signed-off-by: David Mehren <git@herrmehren.de>
This commit is contained in:
parent
552cb05d92
commit
c7e77d25a0
3 changed files with 73 additions and 29 deletions
|
@ -48,6 +48,7 @@
|
|||
"file-type": "16.5.3",
|
||||
"joi": "17.6.0",
|
||||
"minio": "7.0.26",
|
||||
"mysql": "^2.18.1",
|
||||
"nest-router": "1.0.9",
|
||||
"node-fetch": "2.6.7",
|
||||
"passport": "0.5.2",
|
||||
|
@ -72,6 +73,7 @@
|
|||
"@types/express": "4.17.13",
|
||||
"@types/express-session": "1.17.4",
|
||||
"@types/jest": "27.4.1",
|
||||
"@types/mysql": "^2",
|
||||
"@types/node": "16.11.26",
|
||||
"@types/passport-local": "1.0.34",
|
||||
"@types/pg": "^8",
|
||||
|
|
|
@ -86,12 +86,12 @@ export class TestSetup {
|
|||
await appConnection.close();
|
||||
}
|
||||
switch (connectionOptions.type) {
|
||||
case 'postgres': {
|
||||
case 'postgres':
|
||||
case 'mariadb': {
|
||||
const connection = await createConnection({
|
||||
type: 'postgres',
|
||||
type: connectionOptions.type,
|
||||
username: 'hedgedoc',
|
||||
password: 'hedgedoc',
|
||||
database: 'postgres',
|
||||
});
|
||||
await connection.query(`DROP DATABASE ${connectionOptions.database}`);
|
||||
await connection.close();
|
||||
|
@ -121,24 +121,28 @@ export class TestSetupBuilder {
|
|||
* @private
|
||||
*/
|
||||
private static async setupTestDB(dbName: string) {
|
||||
switch (process.env.HEDGEDOC_TEST_DB_TYPE || 'sqlite') {
|
||||
case 'sqlite':
|
||||
return;
|
||||
case 'postgres': {
|
||||
// Create a connection to internal postgres database to then create a test db
|
||||
const connection = await createConnection({
|
||||
type: 'postgres',
|
||||
username: 'hedgedoc',
|
||||
password: 'hedgedoc',
|
||||
database: 'postgres',
|
||||
});
|
||||
await connection.query(`CREATE DATABASE ${dbName}`);
|
||||
await connection.close();
|
||||
return;
|
||||
}
|
||||
default:
|
||||
throw new Error('Unknown database type in HEDGEDOC_TEST_DB_TYPE');
|
||||
const dbType = process.env.HEDGEDOC_TEST_DB_TYPE;
|
||||
if (!dbType || dbType === 'sqlite') {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!['postgres', 'mariadb'].includes(dbType)) {
|
||||
throw new Error('Unknown database type in HEDGEDOC_TEST_DB_TYPE');
|
||||
}
|
||||
|
||||
const connection = await createConnection({
|
||||
type: dbType as 'postgres' | 'mariadb',
|
||||
username: dbType === 'mariadb' ? 'root' : 'hedgedoc',
|
||||
password: 'hedgedoc',
|
||||
});
|
||||
|
||||
await connection.query(`CREATE DATABASE ${dbName}`);
|
||||
if (dbType === 'mariadb') {
|
||||
await connection.query(
|
||||
`GRANT ALL PRIVILEGES ON ${dbName}.* TO 'hedgedoc'@'%'`,
|
||||
);
|
||||
}
|
||||
await connection.close();
|
||||
}
|
||||
|
||||
private static getTestDBConf(dbName: string): TypeOrmModuleOptions {
|
||||
|
@ -152,8 +156,9 @@ export class TestSetupBuilder {
|
|||
dropSchema: true,
|
||||
};
|
||||
case 'postgres':
|
||||
case 'mariadb':
|
||||
return {
|
||||
type: 'postgres',
|
||||
type: process.env.HEDGEDOC_TEST_DB_TYPE as 'postgres' | 'mariadb',
|
||||
database: dbName,
|
||||
username: 'hedgedoc',
|
||||
password: 'hedgedoc',
|
||||
|
|
53
yarn.lock
53
yarn.lock
|
@ -1724,6 +1724,15 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/mysql@npm:^2":
|
||||
version: 2.15.21
|
||||
resolution: "@types/mysql@npm:2.15.21"
|
||||
dependencies:
|
||||
"@types/node": "*"
|
||||
checksum: 6f526e0183c2d03628ca3bdeec839900403863641d61397de3aa0431b8e92457f1580de16b54ee3cd81ccb3968f949a5fa9be939a2101f2148ed5ff3c775c0a7
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@types/node-fetch@npm:2.6.1, @types/node-fetch@npm:^2.5.0":
|
||||
version: 2.6.1
|
||||
resolution: "@types/node-fetch@npm:2.6.1"
|
||||
|
@ -2821,6 +2830,13 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"bignumber.js@npm:9.0.0":
|
||||
version: 9.0.0
|
||||
resolution: "bignumber.js@npm:9.0.0"
|
||||
checksum: 51f37890bca58bded63720add832b1c4898cf5b8ad95b5d4d9c3e763c461163d0355d11d91b740b0216b02e4e8cbb02455b28ee32140b775d96a39bbd817fdf6
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"binary-extensions@npm:^2.0.0":
|
||||
version: 2.2.0
|
||||
resolution: "binary-extensions@npm:2.2.0"
|
||||
|
@ -5375,6 +5391,7 @@ __metadata:
|
|||
"@types/express-session": 1.17.4
|
||||
"@types/jest": 27.4.1
|
||||
"@types/minio": 7.0.12
|
||||
"@types/mysql": ^2
|
||||
"@types/node": 16.11.26
|
||||
"@types/node-fetch": 2.6.1
|
||||
"@types/passport-http-bearer": 1.0.37
|
||||
|
@ -5403,6 +5420,7 @@ __metadata:
|
|||
joi: 17.6.0
|
||||
minio: 7.0.26
|
||||
mocked-env: 1.3.5
|
||||
mysql: ^2.18.1
|
||||
nest-router: 1.0.9
|
||||
node-fetch: 2.6.7
|
||||
passport: 0.5.2
|
||||
|
@ -7391,6 +7409,18 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"mysql@npm:^2.18.1":
|
||||
version: 2.18.1
|
||||
resolution: "mysql@npm:2.18.1"
|
||||
dependencies:
|
||||
bignumber.js: 9.0.0
|
||||
readable-stream: 2.3.7
|
||||
safe-buffer: 5.1.2
|
||||
sqlstring: 2.3.1
|
||||
checksum: 430dec8525e849bbb53f78ffc7aa85b2d1535f49f96ae06064089219cfabfdb9b4051e1fabcbacc0e5b85174ae4c762b071b99d4fb4d062e98f90e723b1def0a
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"mz@npm:^2.4.0":
|
||||
version: 2.7.0
|
||||
resolution: "mz@npm:2.7.0"
|
||||
|
@ -8557,7 +8587,7 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"readable-stream@npm:^2.0.6, readable-stream@npm:^2.2.2":
|
||||
"readable-stream@npm:2.3.7, readable-stream@npm:^2.0.6, readable-stream@npm:^2.2.2":
|
||||
version: 2.3.7
|
||||
resolution: "readable-stream@npm:2.3.7"
|
||||
dependencies:
|
||||
|
@ -8808,6 +8838,13 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"safe-buffer@npm:5.1.2, safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1":
|
||||
version: 5.1.2
|
||||
resolution: "safe-buffer@npm:5.1.2"
|
||||
checksum: f2f1f7943ca44a594893a852894055cf619c1fbcb611237fc39e461ae751187e7baf4dc391a72125e0ac4fb2d8c5c0b3c71529622e6a58f46b960211e704903c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"safe-buffer@npm:5.2.1, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.0, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0":
|
||||
version: 5.2.1
|
||||
resolution: "safe-buffer@npm:5.2.1"
|
||||
|
@ -8815,13 +8852,6 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1":
|
||||
version: 5.1.2
|
||||
resolution: "safe-buffer@npm:5.1.2"
|
||||
checksum: f2f1f7943ca44a594893a852894055cf619c1fbcb611237fc39e461ae751187e7baf4dc391a72125e0ac4fb2d8c5c0b3c71529622e6a58f46b960211e704903c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.0.2, safer-buffer@npm:^2.1.0, safer-buffer@npm:~2.1.0":
|
||||
version: 2.1.2
|
||||
resolution: "safer-buffer@npm:2.1.2"
|
||||
|
@ -9134,6 +9164,13 @@ __metadata:
|
|||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"sqlstring@npm:2.3.1":
|
||||
version: 2.3.1
|
||||
resolution: "sqlstring@npm:2.3.1"
|
||||
checksum: de4299cf9bd0f49abae5b4eddde42c7ae7c447e035498ec50b3264610d6f0efbe433eeed2d20d48b6362bf46fd96c85cf6db240e994dbe6d5c3f9dac6d7ffd31
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"sshpk@npm:^1.7.0":
|
||||
version: 1.17.0
|
||||
resolution: "sshpk@npm:1.17.0"
|
||||
|
|
Loading…
Add table
Reference in a new issue