e2e/tests/6.travel.test.ts (view raw)
1import { EVENT_ID, TRAVEL, TRAVEL_ID } from "../constants";
2import { TravelInput } from "../graphql";
3import { sdk } from "../lib/gqlSdk";
4import { getJwtToken } from "../lib/strapi-utils";
5
6test("createTravel returns created travel", async () => {
7 const travel: TravelInput = {
8 vehicleName: "Test travel car",
9 departureDate: "2023-08-12",
10 departureTime: "13:57",
11 meeting: "Test",
12 seats: 3,
13 };
14 const request = sdk.createTravel({ travel: { ...travel, event: EVENT_ID } });
15
16 await expect(request).resolves.toMatchObject({
17 createTravel: {
18 data: {
19 id: expect.any(String),
20 attributes: travel,
21 },
22 },
23 });
24});
25
26test("updateTravel returns updated travel", async () => {
27 const travelUpdate = {
28 vehicleName: "Updated travel car name",
29 seats: 12,
30 };
31 const request = sdk.updateTravel({ id: "1", travelUpdate });
32
33 await expect(request).resolves.toMatchObject({
34 updateTravel: {
35 data: {
36 id: expect.any(String),
37 attributes: {
38 ...travelUpdate,
39 meeting: TRAVEL.meeting,
40 },
41 },
42 },
43 });
44});
45
46test("deleteTravel returns ID of deleted travel", async () => {
47 const request = sdk.deleteTravel({ id: TRAVEL_ID });
48
49 await expect(request).resolves.toMatchObject({
50 deleteTravel: {
51 data: {
52 id: TRAVEL_ID,
53 },
54 },
55 });
56});
57
58test("createTravel creates a vehicle with 'createVehicle' param and logged user", async () => {
59 const jwt = await getJwtToken();
60
61 const travel = {
62 vehicleName: "My travel's car",
63 seats: 2,
64 phone_number: "12",
65 };
66 const request = sdk.createTravel(
67 {
68 createVehicle: true,
69 travel,
70 },
71 {
72 authorization: `Bearer ${jwt}`,
73 }
74 );
75
76 await expect(request).resolves.toMatchObject({
77 createTravel: {
78 data: {
79 attributes: travel,
80 },
81 },
82 });
83});