import { EVENT_ID, TRAVEL, TRAVEL_ID } from "../constants"; import { TravelInput } from "../graphql"; import { sdk } from "../lib/gqlSdk"; import { getJwtToken } from "../lib/strapi-utils"; test("createTravel returns created travel", async () => { const travel: TravelInput = { vehicleName: "Test travel car", departure: "2023-08-12T13:57:40.093Z", meeting: "Test", seats: 3, }; const request = sdk.createTravel({ travel: { ...travel, event: EVENT_ID } }); await expect(request).resolves.toMatchObject({ createTravel: { data: { id: expect.any(String), attributes: travel, }, }, }); }); test("updateTravel returns updated travel", async () => { const travelUpdate = { vehicleName: "Updated travel car name", seats: 12, }; const request = sdk.updateTravel({ id: "1", travelUpdate }); await expect(request).resolves.toMatchObject({ updateTravel: { data: { id: expect.any(String), attributes: { ...travelUpdate, meeting: TRAVEL.meeting, }, }, }, }); }); test("deleteTravel returns ID of deleted travel", async () => { const request = sdk.deleteTravel({ id: TRAVEL_ID }); await expect(request).resolves.toMatchObject({ deleteTravel: { data: { id: TRAVEL_ID, }, }, }); }); test("createTravel creates a vehicle with 'createVehicle' param and logged user", async () => { const jwt = await getJwtToken(); const travel = { vehicleName: "My travel's car", seats: 2, phone_number: "12", }; const request = sdk.createTravel( { createVehicle: true, travel, }, { authorization: `Bearer ${jwt}`, } ); await expect(request).resolves.toMatchObject({ createTravel: { data: { attributes: travel, }, }, }); });