3.0.0 • Published 2 years ago

@betsys-nestjs/test-cleaner v3.0.0

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

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

PackageVersion
@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();
});