59 lines
1.8 KiB
TypeScript
59 lines
1.8 KiB
TypeScript
import { AdEntity } from '@modules/ad/core/domain/ad.entity';
|
|
import { Frequency } from '@modules/ad/core/domain/ad.types';
|
|
import { AdRepository } from '@modules/ad/infrastructure/ad.repository';
|
|
import { PrismaService } from '@modules/ad/infrastructure/prisma.service';
|
|
import { driverNiceMarseille, wednesday, weekdays } from './ad.fixtures';
|
|
import { integrationTestingModule } from './integration.setup';
|
|
|
|
describe('Ad Repository', () => {
|
|
let prismaService: PrismaService;
|
|
let adRepository: AdRepository;
|
|
|
|
beforeAll(async () => {
|
|
({ prismaService, adRepository } = await integrationTestingModule());
|
|
});
|
|
|
|
afterAll(async () => {
|
|
await prismaService.$disconnect();
|
|
});
|
|
|
|
beforeEach(async () => {
|
|
await prismaService.ad.deleteMany();
|
|
});
|
|
|
|
describe('create', () => {
|
|
it('should create a punctual ad', async () => {
|
|
const beforeCount = await prismaService.ad.count();
|
|
|
|
const createAdProps = driverNiceMarseille(
|
|
Frequency.PUNCTUAL,
|
|
['2023-02-01', '2023-02-01'],
|
|
[wednesday('08:30')],
|
|
);
|
|
const adToCreate = AdEntity.create(createAdProps);
|
|
await adRepository.insertExtra(adToCreate, 'ad');
|
|
|
|
const afterCount = await prismaService.ad.count();
|
|
|
|
expect(afterCount - beforeCount).toBe(1);
|
|
});
|
|
|
|
it('should create a recurrent ad', async () => {
|
|
const beforeCount = await prismaService.ad.count();
|
|
|
|
const createAdProps = driverNiceMarseille(
|
|
Frequency.RECURRENT,
|
|
['2023-02-01', '2024-01-31'],
|
|
weekdays('08:30'),
|
|
);
|
|
|
|
const adToCreate = AdEntity.create(createAdProps);
|
|
await adRepository.insertExtra(adToCreate, 'ad');
|
|
|
|
const afterCount = await prismaService.ad.count();
|
|
|
|
expect(afterCount - beforeCount).toBe(1);
|
|
});
|
|
});
|
|
});
|