50 lines
1.6 KiB
TypeScript
50 lines
1.6 KiB
TypeScript
import { Test, TestingModule } from '@nestjs/testing';
|
|
import { RedisConfigurationRepository } from '../../adapters/secondaries/redis-configuration.repository';
|
|
import { DeleteConfigurationCommand } from '../../commands/delete-configuration.command';
|
|
import { DeleteConfigurationRequest } from '../../domain/dtos/delete-configuration.request';
|
|
import { DeleteConfigurationUseCase } from '../../domain/usecases/delete-configuration.usecase';
|
|
|
|
const mockRedisConfigurationRepository = {
|
|
del: jest.fn().mockResolvedValue(undefined),
|
|
};
|
|
|
|
describe('DeleteConfigurationUseCase', () => {
|
|
let deleteConfigurationUseCase: DeleteConfigurationUseCase;
|
|
|
|
beforeAll(async () => {
|
|
const module: TestingModule = await Test.createTestingModule({
|
|
providers: [
|
|
{
|
|
provide: RedisConfigurationRepository,
|
|
useValue: mockRedisConfigurationRepository,
|
|
},
|
|
|
|
DeleteConfigurationUseCase,
|
|
],
|
|
}).compile();
|
|
|
|
deleteConfigurationUseCase = module.get<DeleteConfigurationUseCase>(
|
|
DeleteConfigurationUseCase,
|
|
);
|
|
});
|
|
|
|
it('should be defined', () => {
|
|
expect(deleteConfigurationUseCase).toBeDefined();
|
|
});
|
|
|
|
describe('execute', () => {
|
|
it('should delete a key', async () => {
|
|
jest.spyOn(mockRedisConfigurationRepository, 'del');
|
|
const deleteConfigurationRequest: DeleteConfigurationRequest = {
|
|
domain: 'my-domain',
|
|
key: 'my-key',
|
|
};
|
|
await deleteConfigurationUseCase.execute(
|
|
new DeleteConfigurationCommand(deleteConfigurationRequest),
|
|
);
|
|
|
|
expect(mockRedisConfigurationRepository.del).toHaveBeenCalledTimes(1);
|
|
});
|
|
});
|
|
});
|