all repos — caroster @ f32c91bc409d3d049b4e8f1c465b5fa6e738ee46

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