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 phone_number: VEHICLE.phone_number,
22 seats: VEHICLE.seats,
23 },
24 },
25 ]),
26 },
27 },
28 },
29 });
30});
31
32test("findUserVehicles throws error if no auth", async () => {
33 const request = sdk.findUserVehicles();
34 await expect(request).rejects.toThrow("Forbidden access:");
35});
36
37test("deleteVehicle returns ID of deleted vehicle", async () => {
38 const jwt = await getJwtToken();
39 const request = sdk.deleteVehicle(
40 { id: VEHICLE_ID },
41 {
42 authorization: `Bearer ${jwt}`,
43 }
44 );
45
46 await expect(request).resolves.toMatchObject({
47 deleteVehicle: {
48 data: {
49 id: VEHICLE_ID,
50 attributes: {
51 name: expect.any(String),
52 },
53 },
54 },
55 });
56});
57
58test("deleteVehicle fails if logged user doesn't own the vehicle", async () => {
59 const jwt = await getJwtToken();
60 const request = sdk.deleteVehicle(
61 { id: "2" },
62 {
63 authorization: `Bearer ${jwt}`,
64 }
65 );
66
67 await expect(request).rejects.toThrow("Not Authorized");
68});