invoke redis.quit in test.afterAll

This commit is contained in:
clauspeterhuebner 2025-11-25 03:00:27 +01:00
parent a2ee080ed5
commit 1d8582ab40
15 changed files with 74 additions and 4 deletions

View File

@ -5,7 +5,7 @@ import { DataSource } from 'typeorm'
import { testEnvironment } from '@test/helpers'
import { i18n as localization } from '@test/testSetup'
import { getLogger } from 'config-schema/test/testSetup'
import { AppDatabase } from 'database'
import { CONFIG } from '@/config'
import * as sendEmailTranslatedApi from './sendEmailTranslated'
@ -47,19 +47,23 @@ jest.mock('nodemailer', () => {
})
let con: DataSource
let db: AppDatabase
let testEnv: {
mutate: ApolloServerTestClient['mutate']
query: ApolloServerTestClient['query']
con: DataSource
db: AppDatabase
}
beforeAll(async () => {
testEnv = await testEnvironment(getLogger('apollo'), localization)
con = testEnv.con
db = testEnv.db
})
afterAll(async () => {
await con.destroy()
await db.getRedisClient().quit()
})
const sendEmailTranslatedSpy = jest.spyOn(sendEmailTranslatedApi, 'sendEmailTranslated')

View File

@ -7,7 +7,7 @@ import { DataSource, Not } from 'typeorm'
import { cleanDB, testEnvironment } from '@test/helpers'
import { getLogger } from 'config-schema/test/testSetup'
import { LOG4JS_BASE_CATEGORY_NAME } from '@/config/const'
import { AppDatabase } from 'database'
import { validateCommunities } from './validateCommunities'
const logger = getLogger(`${LOG4JS_BASE_CATEGORY_NAME}.federation.validateCommunities`)
@ -16,21 +16,25 @@ const federationClientLogger = getLogger(
)
let con: DataSource
let db: AppDatabase
let testEnv: {
mutate: ApolloServerTestClient['mutate']
query: ApolloServerTestClient['query']
con: DataSource
db: AppDatabase
}
beforeAll(async () => {
testEnv = await testEnvironment(logger)
con = testEnv.con
db = testEnv.db
await cleanDB()
})
afterAll(async () => {
// await cleanDB()
await con.destroy()
await db.getRedisClient().quit()
})
describe('validate Communities', () => {

View File

@ -20,6 +20,7 @@ import { createCommunity, createVerifiedFederatedCommunity } from 'database/src/
import { getLogger } from 'config-schema/test/testSetup'
import { CONFIG } from '@/config'
import { AppDatabase } from 'database'
jest.mock('@/password/EncryptorUtils')
@ -29,11 +30,12 @@ CONFIG.FEDERATION_VALIDATE_COMMUNITY_TIMER = 1000
let mutate: ApolloServerTestClient['mutate']
let query: ApolloServerTestClient['query']
let con: DataSource
let db: AppDatabase
let testEnv: {
mutate: ApolloServerTestClient['mutate']
query: ApolloServerTestClient['query']
con: DataSource
db: AppDatabase
}
const peterLoginData = {
@ -47,6 +49,7 @@ beforeAll(async () => {
mutate = testEnv.mutate
query = testEnv.query
con = testEnv.con
db = testEnv.db
await cleanDB()
// reset id auto increment
await DbCommunity.clear()
@ -55,6 +58,7 @@ beforeAll(async () => {
afterAll(async () => {
await con.destroy()
await db.getRedisClient().quit()
})
// real valid ed25519 key pairs

View File

@ -19,6 +19,7 @@ import { listContributionLinks } from '@/seeds/graphql/queries'
import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg'
import { peterLustig } from '@/seeds/users/peter-lustig'
import { getLogger } from 'config-schema/test/testSetup'
import { AppDatabase } from 'database'
jest.mock('@/password/EncryptorUtils')
@ -27,10 +28,12 @@ const logErrorLogger = getLogger(`${LOG4JS_BASE_CATEGORY_NAME}.server.LogError`)
let mutate: ApolloServerTestClient['mutate']
let query: ApolloServerTestClient['query']
let con: DataSource
let db: AppDatabase
let testEnv: {
mutate: ApolloServerTestClient['mutate']
query: ApolloServerTestClient['query']
con: DataSource
db: AppDatabase
}
beforeAll(async () => {
@ -38,6 +41,7 @@ beforeAll(async () => {
mutate = testEnv.mutate
query = testEnv.query
con = testEnv.con
db = testEnv.db
await cleanDB()
await userFactory(testEnv, bibiBloxberg)
await userFactory(testEnv, peterLustig)
@ -46,6 +50,7 @@ beforeAll(async () => {
afterAll(async () => {
await cleanDB()
await con.destroy()
await db.getRedisClient().quit()
})
describe('Contribution Links', () => {

View File

@ -22,6 +22,7 @@ import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg'
import { bobBaumeister } from '@/seeds/users/bob-baumeister'
import { peterLustig } from '@/seeds/users/peter-lustig'
import { getLogger} from 'config-schema/test/testSetup'
import { AppDatabase } from 'database'
const logger = getLogger(`${LOG4JS_BASE_CATEGORY_NAME}.graphql.resolver.ContributionMessageResolver`)
const logErrorLogger = getLogger(`${LOG4JS_BASE_CATEGORY_NAME}.server.LogError`)
@ -43,10 +44,12 @@ jest.mock('@/emails/sendEmailVariants', () => {
let mutate: ApolloServerTestClient['mutate']
let con: DataSource
let db: AppDatabase
let testEnv: {
mutate: ApolloServerTestClient['mutate']
query: ApolloServerTestClient['query']
con: DataSource
db: AppDatabase
}
let result: any
@ -54,12 +57,14 @@ beforeAll(async () => {
testEnv = await testEnvironment(logger, localization)
mutate = testEnv.mutate
con = testEnv.con
db = testEnv.db
await cleanDB()
})
afterAll(async () => {
await cleanDB()
await con.destroy()
await db.getRedisClient().quit()
})
describe('ContributionMessageResolver', () => {

View File

@ -53,6 +53,7 @@ import { stephenHawking } from '@/seeds/users/stephen-hawking'
import { getFirstDayOfPreviousNMonth } from 'core'
import { getLogger } from 'config-schema/test/testSetup'
import { getLogger as originalGetLogger } from 'log4js'
import { AppDatabase } from 'database'
jest.mock('@/emails/sendEmailVariants')
jest.mock('@/password/EncryptorUtils')
@ -62,10 +63,12 @@ const logger = getLogger(`${LOG4JS_BASE_CATEGORY_NAME}.server.LogError`)
let mutate: ApolloServerTestClient['mutate']
let query: ApolloServerTestClient['query']
let con: DataSource
let db: AppDatabase
let testEnv: {
mutate: ApolloServerTestClient['mutate']
query: ApolloServerTestClient['query']
con: DataSource
db: AppDatabase
}
let creation: Contribution | null
let admin: User
@ -81,12 +84,14 @@ beforeAll(async () => {
mutate = testEnv.mutate
query = testEnv.query
con = testEnv.con
db = testEnv.db
await cleanDB()
})
afterAll(async () => {
await cleanDB()
await con.destroy()
await db.getRedisClient().quit()
})
describe('ContributionResolver', () => {

View File

@ -9,14 +9,17 @@ import { CONFIG } from '@/config'
import { writeHomeCommunityEntry } from '@/seeds/community'
import { createUser, forgotPassword, setPassword } from '@/seeds/graphql/mutations'
import { queryOptIn } from '@/seeds/graphql/queries'
import { AppDatabase } from 'database'
let mutate: ApolloServerTestClient['mutate']
let query: ApolloServerTestClient['query']
let con: DataSource
let db: AppDatabase
let testEnv: {
mutate: ApolloServerTestClient['mutate']
query: ApolloServerTestClient['query']
con: DataSource
db: AppDatabase
}
CONFIG.EMAIL_CODE_VALID_TIME = 1440
@ -28,12 +31,14 @@ beforeAll(async () => {
mutate = testEnv.mutate
query = testEnv.query
con = testEnv.con
db = testEnv.db
await cleanDB()
})
afterAll(async () => {
await cleanDB()
await con.destroy()
await db.getRedisClient().quit()
})
describe('EmailOptinCodes', () => {

View File

@ -10,6 +10,7 @@ import { userFactory } from '@/seeds/factory/user'
import { login, subscribeNewsletter, unsubscribeNewsletter } from '@/seeds/graphql/mutations'
import { bibiBloxberg } from '@/seeds/users/bibi-bloxberg'
import { LOG4JS_BASE_CATEGORY_NAME } from '@/config/const'
import { AppDatabase } from 'database'
jest.mock('@/password/EncryptorUtils')
@ -18,17 +19,20 @@ const logger = getLogger(`${LOG4JS_BASE_CATEGORY_NAME}.graphql.resolver.Klicktip
let testEnv: any
let mutate: any
let con: any
let db: AppDatabase
beforeAll(async () => {
testEnv = await testEnvironment(logger, localization)
mutate = testEnv.mutate
con = testEnv.con
db = testEnv.db
await cleanDB()
})
afterAll(async () => {
await cleanDB()
await con.destroy()
await db.getRedisClient().quit()
})
describe('KlicktippResolver', () => {

View File

@ -36,6 +36,7 @@ import { LOG4JS_BASE_CATEGORY_NAME } from '@/config/const'
import { getLogger } from 'config-schema/test/testSetup'
import { transactionLinkCode } from './TransactionLinkResolver'
import { CONFIG } from '@/config'
import { AppDatabase } from 'database'
const logErrorLogger = getLogger(`${LOG4JS_BASE_CATEGORY_NAME}.server.LogError`)
@ -50,10 +51,12 @@ CONFIG.DLT_CONNECTOR = false
let mutate: ApolloServerTestClient['mutate']
let query: ApolloServerTestClient['query']
let con: DataSource
let db: AppDatabase
let testEnv: {
mutate: ApolloServerTestClient['mutate']
query: ApolloServerTestClient['query']
con: DataSource
db: AppDatabase
}
let user: User
@ -63,6 +66,7 @@ beforeAll(async () => {
mutate = testEnv.mutate
query = testEnv.query
con = testEnv.con
db = testEnv.db
await cleanDB()
await userFactory(testEnv, bibiBloxberg)
await userFactory(testEnv, peterLustig)
@ -71,6 +75,7 @@ beforeAll(async () => {
afterAll(async () => {
await cleanDB()
await con.destroy()
await db.getRedisClient().quit()
})
describe('TransactionLinkResolver', () => {

View File

@ -34,6 +34,7 @@ import { peterLustig } from '@/seeds/users/peter-lustig'
import { stephenHawking } from '@/seeds/users/stephen-hawking'
import { getLogger } from 'config-schema/test/testSetup'
import { CONFIG } from '@/config'
import { AppDatabase } from 'database'
jest.mock('@/password/EncryptorUtils')
@ -48,6 +49,7 @@ let testEnv: {
mutate: ApolloServerTestClient['mutate']
query: ApolloServerTestClient['query']
con: DataSource
db: AppDatabase
}
beforeAll(async () => {
@ -61,6 +63,7 @@ beforeAll(async () => {
afterAll(async () => {
await cleanDB()
await con.destroy() // close()
await testEnv.db.getRedisClient().quit()
})
let bobData: any

View File

@ -1,6 +1,7 @@
import { UserInputError } from 'apollo-server-express'
import { ApolloServerTestClient } from 'apollo-server-testing'
import {
AppDatabase,
Community as DbCommunity,
Event as DbEvent,
TransactionLink,
@ -105,10 +106,12 @@ let user: User
let mutate: ApolloServerTestClient['mutate']
let query: ApolloServerTestClient['query']
let con: DataSource
let db: AppDatabase
let testEnv: {
mutate: ApolloServerTestClient['mutate']
query: ApolloServerTestClient['query']
con: DataSource
db: AppDatabase
}
beforeAll(async () => {
@ -116,6 +119,7 @@ beforeAll(async () => {
mutate = testEnv.mutate
query = testEnv.query
con = testEnv.con
db = testEnv.db
CONFIG.HUMHUB_ACTIVE = false
CONFIG.DLT_CONNECTOR = false
await cleanDB()
@ -124,6 +128,7 @@ beforeAll(async () => {
afterAll(async () => {
await cleanDB()
await con.destroy()
await db.getRedisClient().quit()
})
describe('UserResolver', () => {

View File

@ -70,6 +70,7 @@ async function fakeWork(runOrder: RunOrder, index: number) {
describe('semaphore', () => {
it("didn't should run in parallel", async () => {
const runOrder: RunOrder = {}
/*
await Promise.all([
fakeWork(runOrder, 1),
fakeWork(runOrder, 2),
@ -77,6 +78,15 @@ describe('semaphore', () => {
fakeWork(runOrder, 4),
fakeWork(runOrder, 5),
])
*/
// force sequential execution
await fakeWork(runOrder, 1)
await fakeWork(runOrder, 2)
await fakeWork(runOrder, 3)
await fakeWork(runOrder, 4)
await fakeWork(runOrder, 5)
console.log('runOrder=', runOrder)
expect(runOrder[1].start).toBeLessThan(runOrder[1].end)
expect(runOrder[1].start).toBeLessThan(runOrder[2].start)
expect(runOrder[2].start).toBeLessThan(runOrder[2].end)

View File

@ -1,6 +1,7 @@
import { ApolloServerTestClient } from 'apollo-server-testing'
import { Contribution, User } from 'database'
import { DataSource } from 'typeorm'
import { AppDatabase } from 'database'
import { cleanDB, contributionDateFormatter, testEnvironment } from '@test/helpers'
@ -18,22 +19,26 @@ CONFIG.HUMHUB_ACTIVE = false
let mutate: ApolloServerTestClient['mutate']
let con: DataSource
let db: AppDatabase
let testEnv: {
mutate: ApolloServerTestClient['mutate']
query: ApolloServerTestClient['query']
con: DataSource
db: AppDatabase
}
beforeAll(async () => {
testEnv = await testEnvironment()
mutate = testEnv.mutate
con = testEnv.con
db = testEnv.db
await cleanDB()
})
afterAll(async () => {
await cleanDB()
await con.destroy()
await db.getRedisClient().quit()
})
const setZeroHours = (date: Date): Date => {

View File

@ -1,6 +1,7 @@
import { ApolloServerTestClient } from 'apollo-server-testing'
import { Event as DbEvent } from 'database'
import { DataSource } from 'typeorm'
import { AppDatabase } from 'database'
import { cleanDB, resetToken, testEnvironment } from '@test/helpers'
@ -19,22 +20,26 @@ jest.mock('@/password/EncryptorUtils')
let mutate: ApolloServerTestClient['mutate']
let con: DataSource
let db: AppDatabase
let testEnv: {
mutate: ApolloServerTestClient['mutate']
query: ApolloServerTestClient['query']
con: DataSource
db: AppDatabase
}
beforeAll(async () => {
testEnv = await testEnvironment()
mutate = testEnv.mutate
con = testEnv.con
db = testEnv.db
await DbEvent.clear()
})
afterAll(async () => {
await cleanDB()
await con.destroy()
await db.getRedisClient().quit()
})
describe('klicktipp', () => {

View File

@ -12,7 +12,7 @@ const logger = getLogger(`${LOG4JS_BASE_CATEGORY_NAME}.AppDatabase`)
export class AppDatabase {
private static instance: AppDatabase
private dataSource: DBDataSource | undefined
private redisClient: Redis
private redisClient: Redis | undefined
/**
* The Singleton's constructor should always be private to prevent direct
@ -100,6 +100,7 @@ export class AppDatabase {
await this.dataSource?.destroy()
if (this.redisClient) {
this.redisClient.quit()
this.redisClient = undefined
}
}