all repos — caroster @ 6ed452d52636885944d0c68e07d2bde6f7a77a21

[Octree] Group carpool to your event https://caroster.io

backend/api/event/event.test.js (view raw)

  1const axios = require('axios');
  2const controller = require('./controllers/event');
  3
  4jest.mock('axios');
  5
  6beforeAll(() => {
  7  global.strapi.plugins['email-designer'].services.template.fetch = jest.fn(
  8    () => 1
  9  );
 10  global.strapi.plugins[
 11    'email-designer'
 12  ].services.email.sendTemplatedEmail = jest.fn();
 13
 14  axios.get.mockResolvedValue({data: [{lat: 0, lng: 0}]});
 15});
 16
 17describe('controller.event.findOne', () => {
 18  test('gets sanitized event', async () => {
 19    const ctx = getContext();
 20    ctx.setParams({
 21      uuid: '00000000-0000-0000-0000-000000000000',
 22    });
 23
 24    const result = await controller.findOne(ctx);
 25    expect(result).toEqual(
 26      expect.objectContaining({
 27        name: 'Test event',
 28        email: 'test@example.org',
 29        date: '2022-01-12',
 30        address: 'Uni-mail, Geneva, CH',
 31        uuid: '00000000-0000-0000-0000-000000000000',
 32        waitingList: expect.any(Array),
 33      })
 34    );
 35    expect(result).toEqual(
 36      expect.not.objectContaining({
 37        created_by: expect.any(String),
 38        users: expect.any(Array),
 39      })
 40    );
 41  });
 42
 43  test('sends bad request if user does not exist', async () => {
 44    const ctx = getContext();
 45    ctx.setParams({
 46      uuid: 'does not exist',
 47    });
 48    await controller.findOne(ctx);
 49    expect(ctx.badRequest).toHaveBeenCalled();
 50  });
 51});
 52
 53describe('controller.event.create', () => {
 54  test('creates new event', async () => {
 55    const event = {
 56      name: 'New event',
 57      email: 'test@test.com',
 58      address: 'Event address',
 59      date: '2022-12-12',
 60    };
 61    const ctx = getContext();
 62    ctx.setBody(event);
 63    const result = await controller.create(ctx);
 64    expect(result).toEqual(
 65      expect.objectContaining({
 66        id: expect.any(Number),
 67        uuid: expect.any(String),
 68        email: event.email,
 69        address: event.address,
 70        date: event.date,
 71      })
 72    );
 73  });
 74});
 75
 76describe('controller.event.update', () => {
 77  test('updates event', async () => {
 78    const uuid = '00000000-0000-0000-0000-000000000000';
 79    const eventUpdate = {
 80      name: 'Updated event',
 81      email: 'test+update@test.com',
 82      address: 'New event address',
 83    };
 84    const ctx = getContext();
 85    ctx.setParams({uuid});
 86    ctx.setBody(eventUpdate);
 87
 88    const result = await controller.update(ctx);
 89    expect(result).toEqual(
 90      expect.objectContaining({
 91        id: expect.any(Number),
 92        uuid: uuid,
 93        email: eventUpdate.email,
 94        address: eventUpdate.address,
 95      })
 96    );
 97  });
 98
 99  test('sends bad request if user does not exist', async () => {
100    const ctx = getContext();
101    ctx.setParams({
102      uuid: 'does not exist',
103    });
104    await controller.update(ctx);
105    expect(ctx.badRequest).toHaveBeenCalled();
106  });
107});