mirror of
https://gitlab.com/mobicoop/v3/service/ad.git
synced 2026-02-01 06:30:46 +00:00
43 lines
1.4 KiB
TypeScript
43 lines
1.4 KiB
TypeScript
import { AD_REPOSITORY } from '@modules/ad/ad.di-tokens';
|
|
import { DeleteAdCommand } from '@modules/ad/core/application/commands/delete-ad/delete-ad.command';
|
|
import { DeleteAdService } from '@modules/ad/core/application/commands/delete-ad/delete-ad.service';
|
|
import { AdEntity } from '@modules/ad/core/domain/ad.entity';
|
|
import { Test, TestingModule } from '@nestjs/testing';
|
|
import { punctualPassengerCreateAdProps } from './ad.fixtures';
|
|
|
|
const ad: AdEntity = AdEntity.create(punctualPassengerCreateAdProps());
|
|
jest.spyOn(ad, 'delete');
|
|
|
|
const mockAdRepository = {
|
|
findOneById: jest.fn().mockImplementation(() => ad),
|
|
delete: jest.fn(),
|
|
};
|
|
|
|
describe('delete-ad.service', () => {
|
|
let deleteAdService: DeleteAdService;
|
|
|
|
beforeAll(async () => {
|
|
const module: TestingModule = await Test.createTestingModule({
|
|
providers: [
|
|
{
|
|
provide: AD_REPOSITORY,
|
|
useValue: mockAdRepository,
|
|
},
|
|
DeleteAdService,
|
|
],
|
|
}).compile();
|
|
|
|
deleteAdService = module.get<DeleteAdService>(DeleteAdService);
|
|
});
|
|
|
|
it('should be defined', () => {
|
|
expect(deleteAdService).toBeDefined();
|
|
});
|
|
|
|
it('should trigger the delete logic and delete the ad from the repository', async () => {
|
|
await deleteAdService.execute(new DeleteAdCommand({ id: ad.id }));
|
|
expect(ad.delete).toHaveBeenCalled();
|
|
expect(mockAdRepository.delete).toHaveBeenCalledWith(ad);
|
|
});
|
|
});
|