1 | // https://www.bengladwell.com/run-tests-as-db-transactions-with-objection-js/
|
2 | const knex = require('./knex')
|
3 | const BaseModel = require('../models/base')
|
4 |
|
5 | let afterDone
|
6 |
|
7 | // Initiate transaction
|
8 | beforeEach(done => {
|
9 | knex
|
10 | .transaction(function (newtrx) {
|
11 | BaseModel.knex(newtrx)
|
12 | done()
|
13 | })
|
14 | .catch(function () {
|
15 | // call afterEach's done
|
16 | afterDone()
|
17 | })
|
18 | })
|
19 |
|
20 | // Rollback transaction
|
21 | afterEach(done => {
|
22 | afterDone = done
|
23 | BaseModel.knex().rollback()
|
24 | })
|
25 |
|
26 | afterAll(async () => {
|
27 | await knex.destroy()
|
28 | })
|