all repos — caroster @ d2e47634bff1fe498b6b81f90a89ff0b5817c5c8

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

e2e/tests/4.passenger.test.ts (view raw)

  1import { EVENT_ID, EVENT_UUID, TRAVEL_ID, USER, USER_ID } from "../constants";
  2import { EditPassengerInput, PassengerInput } from "../graphql";
  3import { sdk } from "../lib/gqlSdk";
  4
  5test("createPassenger add a new passenger to event's waiting list", async () => {
  6  const passenger: PassengerInput = {
  7    name: "Oki Doki",
  8    email: "okidoki@octree.ch",
  9    location: "Church place",
 10  };
 11  const createPassengerRequest = sdk.createPassenger({
 12    passenger: { ...passenger, event: EVENT_ID },
 13  });
 14
 15  await expect(createPassengerRequest).resolves.toMatchObject({
 16    createPassenger: {
 17      passenger,
 18    },
 19  });
 20
 21  const getEventRequest = sdk.eventByUUID({
 22    uuid: EVENT_UUID,
 23  });
 24  await expect(getEventRequest).resolves.toMatchObject({
 25    eventByUUID: {
 26      waitingPassengers: [
 27        {
 28          ...passenger,
 29          user: null,
 30          id: "1",
 31        },
 32      ],
 33    },
 34  });
 35});
 36
 37test("createPassenger add a new known user to event's waiting list", async () => {
 38  const passenger: PassengerInput = {
 39    name: "Test User",
 40    email: "test@octree.ch",
 41    location: "Train station",
 42    user: USER_ID,
 43  };
 44  const createPassengerRequest = sdk.createPassenger({
 45    passenger: { ...passenger, event: EVENT_ID },
 46  });
 47
 48  await expect(createPassengerRequest).resolves.toMatchObject({
 49    createPassenger: {
 50      passenger: {
 51        ...passenger,
 52        user: {
 53          id: USER.id,
 54          firstName: USER.firstName,
 55          lastName: USER.lastName,
 56        },
 57      },
 58    },
 59  });
 60
 61  const getEventRequest = sdk.eventByUUID({
 62    uuid: EVENT_UUID,
 63  });
 64  await expect(getEventRequest).resolves.toMatchObject({
 65    eventByUUID: {
 66      waitingPassengers: expect.arrayContaining([
 67        expect.objectContaining({
 68          ...passenger,
 69          user: {
 70            id: USER.id,
 71            firstName: USER.firstName,
 72            lastName: USER.lastName,
 73          },
 74        }),
 75      ]),
 76    },
 77  });
 78});
 79
 80test("createPassenger add a new passenger to travel's passengers list", async () => {
 81  const passenger: PassengerInput = {
 82    name: "Oki Doki",
 83    email: "okidoki@octree.ch",
 84    location: "Church place",
 85  };
 86  const createPassengerRequest = sdk.createPassenger({
 87    passenger: { ...passenger, travel: TRAVEL_ID },
 88  });
 89
 90  await expect(createPassengerRequest).resolves.toMatchObject({
 91    createPassenger: {
 92      passenger,
 93    },
 94  });
 95
 96  const getEventRequest = sdk.eventByUUID({
 97    uuid: EVENT_UUID,
 98  });
 99  await expect(getEventRequest).resolves.toMatchObject({
100    eventByUUID: {
101      travels: [
102        {
103          id: TRAVEL_ID,
104          passengers: [
105            {
106              name: passenger.name,
107              location: passenger.location,
108              user: null,
109            },
110          ],
111        },
112      ],
113    },
114  });
115});
116
117test("updatePassenger returns updated passenger", async () => {
118  const passengerUpdate: EditPassengerInput = {
119    name: "Updated name",
120  };
121  const request = sdk.updatePassenger({
122    id: "1",
123    passengerUpdate,
124  });
125
126  await expect(request).resolves.toMatchObject({
127    updatePassenger: {
128      passenger: expect.objectContaining({
129        name: passengerUpdate.name,
130        email: "okidoki@octree.ch",
131      }),
132    },
133  });
134});
135
136test("deletePassenger returns ID of deleted passenger", async () => {
137  const request = sdk.deletePassenger({
138    id: "1",
139  });
140
141  await expect(request).resolves.toMatchObject({
142    deletePassenger: {
143      passenger: {
144        id: "1",
145      },
146    },
147  });
148});