-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
When running tests against api I see:
Jest did not exit one second after the test run has completed.
'This usually means that there are asynchronous operations that weren't stopped in your tests. Consider running Jest with `--detectOpenHandles` to troubleshoot this issue.
When I run with --detectOpenHandles I get:
Jest has detected the following 7 open handles potentially keeping Jest from exiting:
● TCPWRAP
11 |
12 | const loadFixtures = async (): Promise<void> => {
> 13 | await db.sql("archive.fixtures.create_test_accounts");
| ^
14 | await db.sql("archive.fixtures.create_test_archives");
15 | };
16 |
at Connection.connect (../../node_modules/pg/lib/connection.js:43:17)
at Client._connect (../../node_modules/pg/lib/client.js:117:11)
at Client.connect (../../node_modules/pg/lib/client.js:166:12)
at BoundPool.newClient (../../node_modules/pg-pool/index.js:241:12)
at BoundPool.connect (../../node_modules/pg-pool/index.js:216:10)
at TinyPg.getClient (../../node_modules/tinypg/src/tiny.ts:338:24)
at TinyPg.<anonymous> (../../node_modules/tinypg/src/tiny.ts:381:30)
at ../../node_modules/tinypg/dist/tiny.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/tiny.js:4:12)
at query_promise (../../node_modules/tinypg/src/tiny.ts:380:62)
at TinyPg.<anonymous> (../../node_modules/tinypg/src/tiny.ts:473:13)
at ../../node_modules/tinypg/dist/tiny.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/tiny.js:4:12)
at TinyPg.performDbCall (../../node_modules/tinypg/dist/tiny.js:248:16)
at TinyPg.<anonymous> (../../node_modules/tinypg/src/tiny.ts:115:22)
at ../../node_modules/tinypg/dist/tiny.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/tiny.js:4:12)
at ../../node_modules/tinypg/src/tiny.ts:106:84
at Object.<anonymous> (../../node_modules/tinypg/src/util.ts:25:20)
at ../../node_modules/tinypg/dist/util.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/util.js:4:12)
at Object.stackTraceAccessor (../../node_modules/tinypg/dist/util.js:27:12)
at TinyPg.sql (../../node_modules/tinypg/src/tiny.ts:106:19)
at loadFixtures (src/archive/controller/make_featured.test.ts:13:11)
at Object.<anonymous> (src/archive/controller/make_featured.test.ts:34:9)
● TCPWRAP
12 |
13 | const loadFixtures = async (): Promise<void> => {
> 14 | await db.sql("archive.fixtures.create_test_accounts");
| ^
15 | await db.sql("archive.fixtures.create_test_archives");
16 | await db.sql("archive.fixtures.create_test_featured_archives");
17 | await db.sql("archive.fixtures.create_test_folders");
at Connection.connect (../../node_modules/pg/lib/connection.js:43:17)
at Client._connect (../../node_modules/pg/lib/client.js:117:11)
at Client.connect (../../node_modules/pg/lib/client.js:166:12)
at BoundPool.newClient (../../node_modules/pg-pool/index.js:241:12)
at BoundPool.connect (../../node_modules/pg-pool/index.js:216:10)
at TinyPg.getClient (../../node_modules/tinypg/src/tiny.ts:338:24)
at TinyPg.<anonymous> (../../node_modules/tinypg/src/tiny.ts:381:30)
at ../../node_modules/tinypg/dist/tiny.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/tiny.js:4:12)
at query_promise (../../node_modules/tinypg/src/tiny.ts:380:62)
at TinyPg.<anonymous> (../../node_modules/tinypg/src/tiny.ts:473:13)
at ../../node_modules/tinypg/dist/tiny.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/tiny.js:4:12)
at TinyPg.performDbCall (../../node_modules/tinypg/dist/tiny.js:248:16)
at TinyPg.<anonymous> (../../node_modules/tinypg/src/tiny.ts:115:22)
at ../../node_modules/tinypg/dist/tiny.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/tiny.js:4:12)
at ../../node_modules/tinypg/src/tiny.ts:106:84
at Object.<anonymous> (../../node_modules/tinypg/src/util.ts:25:20)
at ../../node_modules/tinypg/dist/util.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/util.js:4:12)
at Object.stackTraceAccessor (../../node_modules/tinypg/dist/util.js:27:12)
at TinyPg.sql (../../node_modules/tinypg/src/tiny.ts:106:19)
at loadFixtures (src/archive/controller/unfeature.test.ts:14:11)
at Object.<anonymous> (src/archive/controller/unfeature.test.ts:40:9)
● TCPWRAP
18 |
19 | const clearDatabase = async (): Promise<void> => {
> 20 | await db.query(
| ^
21 | "TRUNCATE account, archive, record, folder, tag, tag_link CASCADE",
22 | );
23 | };
at Connection.connect (../../node_modules/pg/lib/connection.js:43:17)
at Client._connect (../../node_modules/pg/lib/client.js:117:11)
at Client.connect (../../node_modules/pg/lib/client.js:166:12)
at BoundPool.newClient (../../node_modules/pg-pool/index.js:241:12)
at BoundPool.connect (../../node_modules/pg-pool/index.js:216:10)
at TinyPg.getClient (../../node_modules/tinypg/src/tiny.ts:338:24)
at TinyPg.<anonymous> (../../node_modules/tinypg/src/tiny.ts:381:30)
at ../../node_modules/tinypg/dist/tiny.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/tiny.js:4:12)
at query_promise (../../node_modules/tinypg/src/tiny.ts:380:62)
at TinyPg.<anonymous> (../../node_modules/tinypg/src/tiny.ts:473:13)
at ../../node_modules/tinypg/dist/tiny.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/tiny.js:4:12)
at TinyPg.performDbCall (../../node_modules/tinypg/dist/tiny.js:248:16)
at TinyPg.<anonymous> (../../node_modules/tinypg/src/tiny.ts:95:28)
at ../../node_modules/tinypg/dist/tiny.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/tiny.js:4:12)
at ../../node_modules/tinypg/src/tiny.ts:83:84
at Object.<anonymous> (../../node_modules/tinypg/src/util.ts:25:20)
at ../../node_modules/tinypg/dist/util.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/util.js:4:12)
at Object.stackTraceAccessor (../../node_modules/tinypg/dist/util.js:27:12)
at TinyPg.query (../../node_modules/tinypg/src/tiny.ts:83:19)
at clearDatabase (src/archive/controller/get_public_tags.test.ts:20:11)
at Object.<anonymous> (src/archive/controller/get_public_tags.test.ts:28:9)
● TCPWRAP
9 |
10 | const loadFixtures = async (): Promise<void> => {
> 11 | await db.sql("archive.fixtures.create_test_accounts");
| ^
12 | await db.sql("archive.fixtures.create_test_archives");
13 | await db.sql("archive.fixtures.create_test_featured_archives");
14 | await db.sql("archive.fixtures.create_test_folders");
at Connection.connect (../../node_modules/pg/lib/connection.js:43:17)
at Client._connect (../../node_modules/pg/lib/client.js:117:11)
at Client.connect (../../node_modules/pg/lib/client.js:166:12)
at BoundPool.newClient (../../node_modules/pg-pool/index.js:241:12)
at BoundPool.connect (../../node_modules/pg-pool/index.js:216:10)
at TinyPg.getClient (../../node_modules/tinypg/src/tiny.ts:338:24)
at TinyPg.<anonymous> (../../node_modules/tinypg/src/tiny.ts:381:30)
at ../../node_modules/tinypg/dist/tiny.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/tiny.js:4:12)
at query_promise (../../node_modules/tinypg/src/tiny.ts:380:62)
at TinyPg.<anonymous> (../../node_modules/tinypg/src/tiny.ts:473:13)
at ../../node_modules/tinypg/dist/tiny.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/tiny.js:4:12)
at TinyPg.performDbCall (../../node_modules/tinypg/dist/tiny.js:248:16)
at TinyPg.<anonymous> (../../node_modules/tinypg/src/tiny.ts:115:22)
at ../../node_modules/tinypg/dist/tiny.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/tiny.js:4:12)
at ../../node_modules/tinypg/src/tiny.ts:106:84
at Object.<anonymous> (../../node_modules/tinypg/src/util.ts:25:20)
at ../../node_modules/tinypg/dist/util.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/util.js:4:12)
at Object.stackTraceAccessor (../../node_modules/tinypg/dist/util.js:27:12)
at TinyPg.sql (../../node_modules/tinypg/src/tiny.ts:106:19)
at loadFixtures (src/archive/controller/get_featured.test.ts:11:11)
at Object.<anonymous> (src/archive/controller/get_featured.test.ts:27:9)
● TCPWRAP
15 |
16 | const clearDatabase = async (): Promise<void> => {
> 17 | await db.query("TRUNCATE account, archive, account_archive CASCADE");
| ^
18 | };
19 |
20 | describe("confirmArchiveOwnership", () => {
at Connection.connect (../../node_modules/pg/lib/connection.js:43:17)
at Client._connect (../../node_modules/pg/lib/client.js:117:11)
at Client.connect (../../node_modules/pg/lib/client.js:166:12)
at BoundPool.newClient (../../node_modules/pg-pool/index.js:241:12)
at BoundPool.connect (../../node_modules/pg-pool/index.js:216:10)
at TinyPg.getClient (../../node_modules/tinypg/src/tiny.ts:338:24)
at TinyPg.<anonymous> (../../node_modules/tinypg/src/tiny.ts:381:30)
at ../../node_modules/tinypg/dist/tiny.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/tiny.js:4:12)
at query_promise (../../node_modules/tinypg/src/tiny.ts:380:62)
at TinyPg.<anonymous> (../../node_modules/tinypg/src/tiny.ts:473:13)
at ../../node_modules/tinypg/dist/tiny.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/tiny.js:4:12)
at TinyPg.performDbCall (../../node_modules/tinypg/dist/tiny.js:248:16)
at TinyPg.<anonymous> (../../node_modules/tinypg/src/tiny.ts:95:28)
at ../../node_modules/tinypg/dist/tiny.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/tiny.js:4:12)
at ../../node_modules/tinypg/src/tiny.ts:83:84
at Object.<anonymous> (../../node_modules/tinypg/src/util.ts:25:20)
at ../../node_modules/tinypg/dist/util.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/util.js:4:12)
at Object.stackTraceAccessor (../../node_modules/tinypg/dist/util.js:27:12)
at TinyPg.query (../../node_modules/tinypg/src/tiny.ts:83:19)
at clearDatabase (src/directive/service/utils.test.ts:17:11)
at Object.<anonymous> (src/directive/service/utils.test.ts:22:9)
● TCPWRAP
13 |
14 | const clearDatabase = async (): Promise<void> => {
> 15 | await db.query("TRUNCATE event, account_archive, account, archive CASCADE");
| ^
16 | };
17 |
18 | describe("getAccountArchive", () => {
at Connection.connect (../../node_modules/pg/lib/connection.js:43:17)
at Client._connect (../../node_modules/pg/lib/client.js:117:11)
at Client.connect (../../node_modules/pg/lib/client.js:166:12)
at BoundPool.newClient (../../node_modules/pg-pool/index.js:241:12)
at BoundPool.connect (../../node_modules/pg-pool/index.js:216:10)
at TinyPg.getClient (../../node_modules/tinypg/src/tiny.ts:338:24)
at TinyPg.<anonymous> (../../node_modules/tinypg/src/tiny.ts:381:30)
at ../../node_modules/tinypg/dist/tiny.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/tiny.js:4:12)
at query_promise (../../node_modules/tinypg/src/tiny.ts:380:62)
at TinyPg.<anonymous> (../../node_modules/tinypg/src/tiny.ts:473:13)
at ../../node_modules/tinypg/dist/tiny.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/tiny.js:4:12)
at TinyPg.performDbCall (../../node_modules/tinypg/dist/tiny.js:248:16)
at TinyPg.<anonymous> (../../node_modules/tinypg/src/tiny.ts:95:28)
at ../../node_modules/tinypg/dist/tiny.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/tiny.js:4:12)
at ../../node_modules/tinypg/src/tiny.ts:83:84
at Object.<anonymous> (../../node_modules/tinypg/src/util.ts:25:20)
at ../../node_modules/tinypg/dist/util.js:8:71
at Object.<anonymous>.__awaiter (../../node_modules/tinypg/dist/util.js:4:12)
at Object.stackTraceAccessor (../../node_modules/tinypg/dist/util.js:27:12)
at TinyPg.query (../../node_modules/tinypg/src/tiny.ts:83:19)
at clearDatabase (src/account/service.test.ts:15:11)
at Object.<anonymous> (src/account/service.test.ts:20:9)
● TCPWRAP
9 |
10 | test("should be available when DB connection works", async () => {
> 11 | const result = await agent.get("/api/v2/health").expect(200);
| ^
12 | expect(
13 | (result.body as { status: "available" | "unavailable" }).status,
14 | ).toBe("available");
at Test.serverAddress (../../node_modules/supertest/lib/test.js:63:35)
at new Test (../../node_modules/supertest/lib/test.js:49:14)
at Object.obj.<computed> [as get] (../../node_modules/supertest/index.js:39:18)
at Object.<anonymous> (src/health/controller.test.ts:11:30)
Metadata
Metadata
Assignees
Labels
No labels