test: align jest db bootstrap with ci
This commit is contained in:
		| @@ -12,6 +12,15 @@ module.exports = async () => { | ||||
|   process.env.POSTGRES_HOST = process.env.POSTGRES_HOST || '127.0.0.1'; | ||||
|   process.env.POSTGRES_PORT = process.env.POSTGRES_PORT || '55432'; | ||||
|  | ||||
| const useDocker = process.env.USE_DOCKER_TEST_DB !== 'false'; | ||||
|  | ||||
| if (useDocker) { | ||||
|   process.env.POSTGRES_DB = process.env.POSTGRES_DB || 'merchantsofhope_test'; | ||||
|   process.env.POSTGRES_USER = process.env.POSTGRES_USER || 'postgres'; | ||||
|   process.env.POSTGRES_PASSWORD = process.env.POSTGRES_PASSWORD || 'postgres'; | ||||
|   process.env.POSTGRES_HOST = process.env.POSTGRES_HOST || '127.0.0.1'; | ||||
|   process.env.POSTGRES_PORT = process.env.POSTGRES_PORT || '55432'; | ||||
|  | ||||
|   const composeFile = path.join(__dirname, '..', '..', '..', 'docker-compose.test.yml'); | ||||
|  | ||||
|   const upResult = spawnSync( | ||||
| @@ -47,19 +56,30 @@ module.exports = async () => { | ||||
|  | ||||
|     sleep(1000); | ||||
|   } | ||||
|  | ||||
|   if (!ready) { | ||||
|     throw new Error('Database did not become ready in time'); | ||||
|   } | ||||
| } | ||||
|  | ||||
|   const migratePath = path.join(__dirname, '..', 'database', 'migrate.js'); | ||||
|   const result = spawnSync('node', [migratePath], { | ||||
|     cwd: path.join(__dirname, '..', '..'), | ||||
|     stdio: 'inherit', | ||||
|     env: process.env | ||||
|   }); | ||||
| const waitScript = path.join(__dirname, '..', '..', 'scripts', 'wait-for-db.js'); | ||||
| const waitResult = spawnSync('node', [waitScript], { | ||||
|   cwd: path.join(__dirname, '..', '..'), | ||||
|   stdio: 'inherit', | ||||
|   env: process.env | ||||
| }); | ||||
|  | ||||
|   if (result.status !== 0) { | ||||
|     throw new Error('Database migration failed before running tests'); | ||||
|   } | ||||
| if (waitResult.status !== 0) { | ||||
|   throw new Error('Database wait script failed'); | ||||
| } | ||||
|  | ||||
| const migratePath = path.join(__dirname, '..', 'database', 'migrate.js'); | ||||
| const result = spawnSync('node', [migratePath], { | ||||
|   cwd: path.join(__dirname, '..', '..'), | ||||
|   stdio: 'inherit', | ||||
|   env: process.env | ||||
| }); | ||||
|  | ||||
| if (result.status !== 0) { | ||||
|   throw new Error('Database migration failed before running tests'); | ||||
| } | ||||
| }; | ||||
|   | ||||
| @@ -7,14 +7,16 @@ module.exports = async () => { | ||||
|   await cleanupUploads(); | ||||
|   await pool.end(); | ||||
|  | ||||
|   const composeFile = path.join(__dirname, '..', '..', '..', 'docker-compose.test.yml'); | ||||
|   spawnSync( | ||||
|     'docker', | ||||
|     ['compose', '-f', composeFile, 'down', '--volumes'], | ||||
|     { | ||||
|       cwd: path.join(__dirname, '..', '..'), | ||||
|       stdio: 'inherit', | ||||
|       env: process.env | ||||
|     } | ||||
|   ); | ||||
|   if (process.env.USE_DOCKER_TEST_DB !== 'false') { | ||||
|     const composeFile = path.join(__dirname, '..', '..', '..', 'docker-compose.test.yml'); | ||||
|     spawnSync( | ||||
|       'docker', | ||||
|       ['compose', '-f', composeFile, 'down', '--volumes'], | ||||
|       { | ||||
|         cwd: path.join(__dirname, '..', '..'), | ||||
|         stdio: 'inherit', | ||||
|         env: process.env | ||||
|       } | ||||
|     ); | ||||
|   } | ||||
| }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user