Skip to content

Commit 226d488

Browse files
committed
Upgrade ava and ensure correct cleanup after tests
1 parent 87f5d5d commit 226d488

31 files changed

Lines changed: 855 additions & 419 deletions

package-lock.json

Lines changed: 758 additions & 375 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@
7676
"@apollo/client": "^3.14.0",
7777
"@electerious/eslint-config": "^5.2.2",
7878
"@electerious/prettier-config": "^4.0.1",
79-
"ava": "^5.3.1",
79+
"ava": "^6.4.1",
8080
"classnames": "^2.5.1",
8181
"eslint": "^9.39.3",
8282
"formbase": "^12.0.3",

src/utils/salt.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ let salt = generate()
88
const rule = new schedule.RecurrenceRule()
99
rule.hour = 0
1010

11-
schedule.scheduleJob(rule, () => (salt = generate()))
11+
export const job = schedule.scheduleJob(rule, () => (salt = generate()))
1212

1313
export default () => salt

test/resolvers/_utils.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import Record from '../../src/models/Record.js'
99
import Token from '../../src/models/Token.js'
1010
import connect from '../../src/utils/connect.js'
1111
import createArray from '../../src/utils/createArray.js'
12+
import { job as saltJob } from '../../src/utils/salt.js'
1213
import { day, minute } from '../../src/utils/times.js'
1314

1415
const mongoDb = MongoMemoryServer.create()
@@ -71,9 +72,16 @@ export const cleanupDatabase = async (t) => {
7172
})
7273
}
7374

74-
export const disconnectFromDatabase = async () => {
75-
mongoose.disconnect()
76-
;(await mongoDb).stop()
75+
export const cleanup = (server) => async () => {
76+
// Ensure database is disconnected and in-memory MongoDB is stopped
77+
await mongoose.disconnect()
78+
await (await mongoDb).stop()
79+
80+
// Cancel the daily salt generation job
81+
saltJob.cancel()
82+
83+
// Close the server to prevent open handles
84+
server.close()
7785
}
7886

7987
export const api = async (base, body, token, headers = {}) => {

test/resolvers/actions.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { randomUUID as uuid } from 'node:crypto'
33
import listen from 'test-listen'
44

55
import server from '../../src/server.js'
6-
import { api, cleanupDatabase, connectToDatabase, disconnectFromDatabase, fillDatabase, gql } from './_utils.js'
6+
import { api, cleanup, cleanupDatabase, connectToDatabase, fillDatabase, gql } from './_utils.js'
77

88
const base = listen(server)
99

@@ -16,7 +16,7 @@ const updatedKey = uuid()
1616
const updatedValue = null
1717

1818
test.before(connectToDatabase)
19-
test.after.always(disconnectFromDatabase)
19+
test.after.always(cleanup(server))
2020
test.beforeEach(fillDatabase)
2121
test.afterEach.always(cleanupDatabase)
2222

test/resolvers/domainStatistics/browsers.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ import test from 'ava'
22
import listen from 'test-listen'
33

44
import server from '../../../src/server.js'
5-
import { cleanupDatabase, connectToDatabase, disconnectFromDatabase, fillDatabase } from '../_utils.js'
5+
import { cleanup, cleanupDatabase, connectToDatabase, fillDatabase } from '../_utils.js'
66
import { getStats } from './_utils.js'
77

88
const base = listen(server)
99

1010
test.before(connectToDatabase)
11-
test.after.always(disconnectFromDatabase)
11+
test.after.always(cleanup(server))
1212
test.beforeEach(fillDatabase)
1313
test.afterEach.always(cleanupDatabase)
1414

test/resolvers/domainStatistics/devices.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ import test from 'ava'
22
import listen from 'test-listen'
33

44
import server from '../../../src/server.js'
5-
import { cleanupDatabase, connectToDatabase, disconnectFromDatabase, fillDatabase } from '../_utils.js'
5+
import { cleanup, cleanupDatabase, connectToDatabase, fillDatabase } from '../_utils.js'
66
import { getStats } from './_utils.js'
77

88
const base = listen(server)
99

1010
test.before(connectToDatabase)
11-
test.after.always(disconnectFromDatabase)
11+
test.after.always(cleanup(server))
1212
test.beforeEach(fillDatabase)
1313
test.afterEach.always(cleanupDatabase)
1414

test/resolvers/domainStatistics/durations.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ import listen from 'test-listen'
33

44
import server from '../../../src/server.js'
55
import { minute } from '../../../src/utils/times.js'
6-
import { cleanupDatabase, connectToDatabase, disconnectFromDatabase, fillDatabase } from '../_utils.js'
6+
import { cleanup, cleanupDatabase, connectToDatabase, fillDatabase } from '../_utils.js'
77
import { getStats } from './_utils.js'
88

99
const base = listen(server)
1010

1111
test.before(connectToDatabase)
12-
test.after.always(disconnectFromDatabase)
12+
test.after.always(cleanup(server))
1313
test.beforeEach(fillDatabase)
1414
test.afterEach.always(cleanupDatabase)
1515

test/resolvers/domainStatistics/languages.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ import test from 'ava'
22
import listen from 'test-listen'
33

44
import server from '../../../src/server.js'
5-
import { cleanupDatabase, connectToDatabase, disconnectFromDatabase, fillDatabase } from '../_utils.js'
5+
import { cleanup, cleanupDatabase, connectToDatabase, fillDatabase } from '../_utils.js'
66
import { getStats } from './_utils.js'
77

88
const base = listen(server)
99

1010
test.before(connectToDatabase)
11-
test.after.always(disconnectFromDatabase)
11+
test.after.always(cleanup(server))
1212
test.beforeEach(fillDatabase)
1313
test.afterEach.always(cleanupDatabase)
1414

test/resolvers/domainStatistics/pages.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ import test from 'ava'
22
import listen from 'test-listen'
33

44
import server from '../../../src/server.js'
5-
import { cleanupDatabase, connectToDatabase, disconnectFromDatabase, fillDatabase } from '../_utils.js'
5+
import { cleanup, cleanupDatabase, connectToDatabase, fillDatabase } from '../_utils.js'
66
import { getStats } from './_utils.js'
77

88
const base = listen(server)
99

1010
test.before(connectToDatabase)
11-
test.after.always(disconnectFromDatabase)
11+
test.after.always(cleanup(server))
1212
test.beforeEach(fillDatabase)
1313
test.afterEach.always(cleanupDatabase)
1414

0 commit comments

Comments
 (0)