From d785f864d664886e2c70b62415670fb93fcd5f03 Mon Sep 17 00:00:00 2001
From: Roland Bernard <rolbernard@unibz.it>
Date: Sun, 23 May 2021 13:45:50 +0200
Subject: [PATCH] The test teardow is now working correctly

---
 server/src/database.ts     |  8 +++++++-
 server/src/setupTests.ts   | 10 +++++++++-
 server/src/v1/user.test.ts |  5 -----
 3 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/server/src/database.ts b/server/src/database.ts
index be83ed0..e4c4471 100644
--- a/server/src/database.ts
+++ b/server/src/database.ts
@@ -5,7 +5,13 @@ import { environment } from './config';
 import config from './knexconfig';
 
 export const database = knex(config[environment]);
-export const migrated = database.migrate.latest();
+
+// Only after this promise resolves is the migration finished
+export const ready = database.migrate.latest();
+
+export function close() {
+    return database.destroy();
+}
 
 export default database;
 
diff --git a/server/src/setupTests.ts b/server/src/setupTests.ts
index 665fd55..20e686c 100644
--- a/server/src/setupTests.ts
+++ b/server/src/setupTests.ts
@@ -1,3 +1,11 @@
 
-import './database';
+import { ready, close } from './database';
+
+beforeAll(async () => {
+    await ready;
+});
+
+afterAll(async () => {
+    await close();
+});
 
diff --git a/server/src/v1/user.test.ts b/server/src/v1/user.test.ts
index c9c5905..2983bbd 100644
--- a/server/src/v1/user.test.ts
+++ b/server/src/v1/user.test.ts
@@ -1,14 +1,9 @@
 
 import { api } from '../api';
-import { migrated } from '../database';
 import supertest from 'supertest';
 
 const request = supertest(api);
 
-beforeAll(async () => {
-    await migrated;
-});
-
 test('non existant username returns 404 for /v1/user/name/', async () => {
     const response = await request.get('/v1/user/name/__NO_REAL_NAME__');
     expect(response.status).toEqual(404);
-- 
GitLab