e2e/tests/8.vehicle.test.ts (view raw)
1import { USER_ID, VEHICLE, VEHICLE_ID } from "../constants";
2import { sdk } from "../lib/gqlSdk";
3import { getJwtToken } from "../lib/strapi-utils";
4
5test("findUserVehicles returns vehicles of logged user", async () => {
6 const jwt = await getJwtToken();
7 const request = sdk.findUserVehicles(undefined, {
8 authorization: `Bearer ${jwt}`,
9 });
10
11 await expect(request).resolves.toMatchObject({
12 me: {
13 id: USER_ID,
14 profile: {
15 vehicles: {
16 data: expect.arrayContaining([
17 {
18 id: VEHICLE_ID,
19 attributes: {
20 name: VEHICLE.name,
21 phoneCountry: null,
22 phone_number: VEHICLE.phone_number,
23 seats: VEHICLE.seats,
24 },
25 },
26 ]),
27 },
28 },
29 },
30 });
31});
32
33test("findUserVehicles throws error if no auth", async () => {
34 const request = sdk.findUserVehicles();
35 await expect(request).rejects.toThrow("Forbidden access:");
36});
37
38test("deleteVehicle returns ID of deleted vehicle", async () => {
39 const jwt = await getJwtToken();
40 const request = sdk.deleteVehicle(
41 { id: VEHICLE_ID },
42 {
43 authorization: `Bearer ${jwt}`,
44 }
45 );
46
47 await expect(request).resolves.toMatchObject({
48 deleteVehicle: {
49 data: {
50 id: VEHICLE_ID,
51 attributes: {
52 name: expect.any(String),
53 },
54 },
55 },
56 });
57});
58
59test("deleteVehicle fails if logged user doesn't own the vehicle", async () => {
60 const jwt = await getJwtToken();
61 const request = sdk.deleteVehicle(
62 { id: "2" },
63 {
64 authorization: `Bearer ${jwt}`,
65 }
66 );
67
68 await expect(request).rejects.toThrow();
69});