-
Notifications
You must be signed in to change notification settings - Fork 30
Expand file tree
/
Copy pathglobal-setup.ts
More file actions
117 lines (107 loc) · 2.82 KB
/
Copy pathglobal-setup.ts
File metadata and controls
117 lines (107 loc) · 2.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import { expect, type FullConfig } from "@playwright/test";
import Axios from "axios";
export async function deleteIfExists(baseURL: string, slug: string = "test-event") {
try {
await Axios.delete(`${baseURL}/api/event/${slug}`, {
headers: {
"Content-Type": "application/json",
Authorization: `Basic ${btoa(process.env.ADMIN_LOGIN || ":")}`,
},
});
} catch (e) {}
}
export async function createEvent(
baseURL: string,
slug: string = "test-event",
name: string = "TestEvent",
) {
return Axios.post(
`${baseURL}/api/event`,
{
name,
slug,
state: "OPEN",
senders: ["+4915199999999", "whatsapp:+447700161860"],
selection: {
items: [
{
title: "Espresso",
shortTitle: "Espresso",
description: "Strong black coffee",
},
],
modifiers: [],
mode: "barista",
},
pickupLocation: "Pickup location",
maxOrders: 1860,
welcomeMessage: "Custom Welcome",
},
{
headers: {
"Content-Type": "application/json",
Authorization: `Basic ${btoa(process.env.ADMIN_LOGIN || ":")}`,
},
},
);
}
async function createOrder(
baseURL: string,
status: string,
originalText: string,
) {
return Axios.post(
`${baseURL}/api/order`,
{
event: "test-event",
order: {
status,
item: "Espresso",
key: "test-order",
address: "+123***123",
originalText,
},
},
{
headers: {
"Content-Type": "application/json",
Authorization: `Basic ${btoa(process.env.ADMIN_LOGIN || ":")}`,
},
},
);
}
async function globalSetup(config: FullConfig) {
const baseURL = config?.webServer?.url || "http://localhost:3000";
await deleteIfExists(baseURL);
const response = await createEvent(baseURL);
expect(response.status).toBe(201);
const cancelledOrder = await createOrder(
baseURL,
"cancelled",
"A Cancelled Order",
);
expect(cancelledOrder.status).toBe(201);
const deliveredOrder = await createOrder(
baseURL,
"delivered",
"A Delivered Order",
);
expect(deliveredOrder.status).toBe(201);
for (let i = 0; i < 2; i++) {
const espressoOrder = await createOrder(baseURL, "queued", "firefox");
expect(espressoOrder.status).toBe(201);
}
for (let i = 0; i < 4; i++) {
const espressoOrder = await createOrder(baseURL, "queued", "chromium");
expect(espressoOrder.status).toBe(201);
}
for (let i = 0; i < 4; i++) {
const espressoOrder = await createOrder(baseURL, "queued", "webkit");
expect(espressoOrder.status).toBe(201);
}
for (let i = 0; i < 50; i++) {
const espressoOrder = await createOrder(baseURL, "queued", "A test order");
expect(espressoOrder.status).toBe(201);
}
}
export default globalSetup;