From 1f6c0893ca5ad93fdf2c86a6af058b6fb45e0994 Mon Sep 17 00:00:00 2001 From: undefined Date: Tue, 18 May 2021 23:39:24 +0800 Subject: [PATCH] ci: fix jest not exiting --- .github/workflows/build.yml | 2 +- packages/hydrooj/src/model/task.ts | 3 +++ packages/hydrooj/test/db.ts | 4 ++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8d75b925..e670edd2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -36,7 +36,7 @@ jobs: - name: Lint run: yarn lint:ci - name: Unit Test - run: yarn jest --runInBand + run: yarn jest - name: Report Coverage uses: codecov/codecov-action@v1 with: diff --git a/packages/hydrooj/src/model/task.ts b/packages/hydrooj/src/model/task.ts index 7b6fae00..d473dcd9 100644 --- a/packages/hydrooj/src/model/task.ts +++ b/packages/hydrooj/src/model/task.ts @@ -3,6 +3,7 @@ import { FilterQuery, ObjectID } from 'mongodb'; import { BaseService, Task } from '../interface'; import { Logger } from '../logger'; import db from '../service/db'; +import * as bus from '../service/bus'; const logger = new Logger('model/task'); const coll = db.collection('task'); @@ -31,6 +32,8 @@ class Consumer { this.consuming = true; this.get = this.get.bind(this); this.get(); + this.destory = this.destory.bind(this); + bus.on('app/exit', this.destory); } async get() { diff --git a/packages/hydrooj/test/db.ts b/packages/hydrooj/test/db.ts index cb58498c..942ea750 100644 --- a/packages/hydrooj/test/db.ts +++ b/packages/hydrooj/test/db.ts @@ -1,4 +1,6 @@ +import cluster from 'cluster'; import 'hydrooj/src/loader'; +import * as bus from 'hydrooj/src/service/bus'; jest.mock('hydrooj/src/service/db'); @@ -20,4 +22,6 @@ export async function connect() { export async function dispose() { const db = require('hydrooj/src/service/db'); await db.stop(); + bus.emit('app/exit'); + for (const key in cluster.workers) cluster.workers[key].destroy('SIGINT'); }