Test cleaner library
This library is for purpose of development and testing only. It helps you to set/delete entries in Redis and/or purge RabbitMQ queues (basically to clean up after tests)
Environment variables
No environment variables are necessay.
Dependencies
Package | Version |
---|---|
@betsys-nestjs/logger | ^4.0.1 |
@betsys-nestjs/rabbit-mq | ^4.0.0 |
@betsys-nestjs/redis | ^4.0.1 |
@betsys-nestjs/config-utils | ^1.0.3 |
@betsys-nestjs/monitoring | ^5.0.0 |
@nestjs/terminus | ^9.0.0 |
@types/node | ^18.11.18 |
@types/amqplib | ^0.10.1 |
amqplib | ^0.10.3 |
Usage
In order to be able to use the test cleaner in your tests,
you have to import the TestCleanerModule
into your testing module:
import { TestCleanerModule, TestCleanerConfig } from '@betsys-nestjs/test-cleaner';
describe('Some test', () => {
beforeAll(async () => {
const moduleRef = await Test.createTestingModule({
imports: [
TestsCleanerModule.forFeature({
redisConfig: {
uri: 'some-redis-uri',
prefix: 'test'
},
rabbitMqConfig: {
uri: 'some-rabbit-uri'
},
queueNames: [
'queue-to-purge-1',
'queue-to-purge-2',
],
} as TestCleanerConfig),
...
],
}).compile();
}
}
In the configuration, you have to provide redisConfig
. Rabbit configuration is not
mandatory, but please bear in mind, that if you provide rabbitMqConfig
, you have
to provide also queueNames
as well and vice versa.
In your testing modules you can than use instance of RabbitCleaningService
and
RedisCleaningService
:
beforeEach(async () => {
const redisCleaner = moduleRef.get<RedisCleaningService>(RedisCleaningService);
await redisCleaner.flushAll();
const rabbitCleaner = moduleRef.get<RabbitCleaningService>(RabbitCleaningService);
await this.rabbitCleaner.purgeQueues();
});