Newer
Older
import { HttpException, HttpModule, HttpStatus } from '@nestjs/common';
import { getModelToken } from '@nestjs/mongoose';
import { Test, TestingModule } from '@nestjs/testing';
import { ConfigurationModule } from '../configuration/configuration.module';
import { MailerService } from '../mailer/mailer.service';
import { NewsletterSubscription } from '../newsletter/newsletter-subscription.schema';
import { NewsletterService } from '../newsletter/newsletter.service';
import { Structure } from '../structures/schemas/structure.schema';
import { StructuresService } from '../structures/services/structures.service';
import { User } from '../users/schemas/user.schema';
import { UsersService } from '../users/users.service';
import { AdminController } from './admin.controller';
import { PendingStructureDto } from './dto/pending-structure.dto';
describe('AdminController', () => {
let controller: AdminController;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
imports: [ConfigurationModule, HttpModule],
providers: [
UsersService,
StructuresService,
MailerService,
{
provide: getModelToken('User'),
useValue: User,
},
{
provide: getModelToken('NewsletterSubscription'),
useValue: NewsletterSubscription,
},
{
provide: getModelToken('Structure'),
useValue: Structure,
},
],
controllers: [AdminController],
}).compile();
controller = module.get<AdminController>(AdminController);
});
it('should be defined', () => {
expect(controller).toBeDefined();
});
it('should get pending attachments', async () => {
const result = [{name: "MJC Route de vienne", address: "14 chemin des platanes"}, {name: "Mairie Lyon 7eme", address: "21 boulevard martin"}];
jest.spyOn(controller, 'getPendingAttachments').mockImplementation(async (): Promise<any> => result);
expect(await controller.getPendingAttachments()).toBe(result);
});
it('should validate pending structure', async () => {
const result = [{name: "MJC Route de vienne", address: "14 chemin des platanes"}];
const structure: PendingStructureDto = {userEmail:"martin@mjc.fr", structureId: "1", structureName:"MJC Route de vienne"};
jest.spyOn(controller, 'validatePendingStructure').mockImplementation(async (): Promise<any> => result);
expect(await controller.validatePendingStructure(structure)).toBe(result);
});
it('should refuse pending structure', async () => {
const result = [{name: "MJC Route de vienne", address: "14 chemin des platanes"}, {name: "Mairie Lyon 7eme", address: "21 boulevard martin"}];
const structure: PendingStructureDto = {userEmail:"martin@mjc.fr", structureId: "1", structureName:"MJC Route de vienne"};
jest.spyOn(controller, 'refusePendingStructure').mockImplementation(async (): Promise<any> => result);
expect(await controller.refusePendingStructure(structure)).toBe(result);
});