Skip to content

Commit 189270e

Browse files
committed
fixes by pr comments
1 parent cd5fd90 commit 189270e

File tree

5 files changed

+247
-139
lines changed

5 files changed

+247
-139
lines changed
Lines changed: 44 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,65 @@
11
import * as request from 'supertest';
22
import { Common } from '../common';
3-
import { Methods } from '../constants';
43

54
const endpoint = Common.getEndpoint();
5+
const jsonType = 'application/json';
66

77
/**
8-
* Send request using API
9-
* @param method http method
8+
* Send GET request using API
9+
* @param resourcePath URI path segment
10+
*/
11+
export async function sendGetRequest(resourcePath: string): Promise<any> {
12+
const windowId = Common.getWindowId();
13+
let requestEndpoint: any;
14+
15+
requestEndpoint = request(endpoint)
16+
.get(resourcePath)
17+
.set('Accept', jsonType);
18+
if (await windowId) {
19+
requestEndpoint.set('X-Window-Id', await windowId);
20+
}
21+
}
22+
23+
/**
24+
* Send POST request using API
1025
* @param resourcePath URI path segment
11-
* @param statusCode Expected status code of the response
1226
* @param body Request body
1327
*/
14-
export async function sendRequest(
15-
method: string,
28+
export async function sendPostRequest(
1629
resourcePath: string,
17-
statusCode: number,
1830
body?: Record<string, unknown>
1931
): Promise<any> {
2032
const windowId = Common.getWindowId();
2133
let requestEndpoint: any;
2234

23-
if (method === Methods.post) {
24-
(requestEndpoint = request(endpoint)
25-
.post(resourcePath)
26-
.send(body)
27-
.set('Accept', 'application/json'));
28-
}
29-
else if (method === Methods.get) {
30-
(requestEndpoint = request(endpoint)
31-
.get(resourcePath)
32-
.set('Accept', 'application/json'));
33-
}
34-
else if (method === Methods.delete) {
35-
(requestEndpoint = request(endpoint)
36-
.delete(resourcePath)
37-
.send(body)
38-
.set('Accept', 'application/json'));
39-
}
35+
requestEndpoint = request(endpoint)
36+
.post(resourcePath)
37+
.send(body)
38+
.set('Accept', jsonType);
4039

4140
if (await windowId) {
4241
requestEndpoint.set('X-Window-Id', await windowId);
4342
}
43+
}
4444

45-
return await requestEndpoint.expect(statusCode);
45+
/**
46+
* Send DELETE request using API
47+
* @param resourcePath URI path segment
48+
* @param body Request body
49+
*/
50+
export async function sendDeleteRequest(
51+
resourcePath: string,
52+
body?: Record<string, unknown>
53+
): Promise<any> {
54+
const windowId = Common.getWindowId();
55+
let requestEndpoint: any;
56+
57+
requestEndpoint = request(endpoint)
58+
.delete(resourcePath)
59+
.send(body)
60+
.set('Accept', jsonType);
61+
62+
if (await windowId) {
63+
requestEndpoint.set('X-Window-Id', await windowId);
64+
}
4665
}

tests/e2e/helpers/api/api-database.ts

Lines changed: 51 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,12 @@ import {
88
SentinelParameters,
99
ClusterNodes,
1010
} from '../../pageObjects/components/myRedisDatabase/add-redis-database';
11-
import { Methods } from '../constants';
12-
import { sendRequest } from './api-common';
11+
import { ResourcePath } from '../constants';
12+
import {
13+
sendGetRequest,
14+
sendPostRequest,
15+
sendDeleteRequest,
16+
} from './api-common';
1317

1418
const chance = new Chance();
1519

@@ -60,10 +64,8 @@ export class DatabaseAPIRequests {
6064
key: databaseParameters.clientCert!.key,
6165
};
6266
}
63-
const response = await sendRequest(
64-
Methods.post,
65-
'/databases',
66-
201,
67+
const response = await sendPostRequest(
68+
ResourcePath.Databases,
6769
requestBody
6870
);
6971
await t
@@ -72,6 +74,7 @@ export class DatabaseAPIRequests {
7274
databaseParameters.databaseName,
7375
`Database Name is not equal to ${databaseParameters.databaseName} in response`
7476
);
77+
await t.expect(await response.status).eql(201);
7578
}
7679

7780
/**
@@ -100,10 +103,8 @@ export class DatabaseAPIRequests {
100103
host: databaseParameters.ossClusterHost,
101104
port: Number(databaseParameters.ossClusterPort),
102105
};
103-
const response = await sendRequest(
104-
Methods.post,
105-
'/databases',
106-
201,
106+
const response = await sendPostRequest(
107+
ResourcePath.Databases,
107108
requestBody
108109
);
109110
await t
@@ -112,6 +113,7 @@ export class DatabaseAPIRequests {
112113
databaseParameters.ossClusterDatabaseName,
113114
`Database Name is not equal to ${databaseParameters.ossClusterDatabaseName} in response`
114115
);
116+
await t.expect(await response.status).eql(201);
115117
}
116118

117119
/**
@@ -133,20 +135,20 @@ export class DatabaseAPIRequests {
133135
password: databaseParameters.sentinelPassword,
134136
masters: masters,
135137
};
138+
const resourcePath =
139+
ResourcePath.RedisSentinel + ResourcePath.Databases;
140+
const response = await sendPostRequest(resourcePath, requestBody);
136141

137-
await sendRequest(
138-
Methods.post,
139-
'/redis-sentinel/databases',
140-
201,
141-
requestBody
142-
);
142+
await t.expect(await response.status).eql(201);
143143
}
144144

145145
/**
146146
* Get all databases through api
147147
*/
148148
async getAllDatabases(): Promise<string[]> {
149-
const response = await sendRequest(Methods.get, '/databases', 200);
149+
const response = await sendGetRequest(ResourcePath.Databases);
150+
151+
await t.expect(await response.status).eql(200);
150152
return await response.body;
151153
}
152154

@@ -209,12 +211,11 @@ export class DatabaseAPIRequests {
209211
}
210212
if (databaseIds.length > 0) {
211213
const requestBody = { ids: databaseIds };
212-
await sendRequest(
213-
Methods.delete,
214-
'/databases',
215-
200,
214+
const response = await sendDeleteRequest(
215+
ResourcePath.Databases,
216216
requestBody
217217
);
218+
await t.expect(await response.status).eql(200);
218219
}
219220
}
220221
}
@@ -231,7 +232,11 @@ export class DatabaseAPIRequests {
231232
);
232233
if (databaseId) {
233234
const requestBody = { ids: [`${databaseId}`] };
234-
await sendRequest(Methods.delete, '/databases', 200, requestBody);
235+
const response = await sendDeleteRequest(
236+
ResourcePath.Databases,
237+
requestBody
238+
);
239+
await t.expect(await response.status).eql(200);
235240
} else {
236241
throw new Error('Error: Missing databaseId');
237242
}
@@ -248,12 +253,11 @@ export class DatabaseAPIRequests {
248253
const databaseId = await this.getDatabaseIdByName(databaseName);
249254
if (databaseId) {
250255
const requestBody = { ids: [`${databaseId}`] };
251-
await sendRequest(
252-
Methods.delete,
253-
'/databases',
254-
200,
256+
const response = await sendDeleteRequest(
257+
ResourcePath.Databases,
255258
requestBody
256259
);
260+
await t.expect(await response.status).eql(200);
257261
} else {
258262
throw new Error('Error: Missing databaseId');
259263
}
@@ -271,7 +275,11 @@ export class DatabaseAPIRequests {
271275
databaseParameters.ossClusterDatabaseName
272276
);
273277
const requestBody = { ids: [`${databaseId}`] };
274-
await sendRequest(Methods.delete, '/databases', 200, requestBody);
278+
const response = await sendDeleteRequest(
279+
ResourcePath.Databases,
280+
requestBody
281+
);
282+
await t.expect(await response.status).eql(200);
275283
}
276284

277285
/**
@@ -286,7 +294,11 @@ export class DatabaseAPIRequests {
286294
databaseParameters.name![i]
287295
);
288296
const requestBody = { ids: [`${databaseId}`] };
289-
await sendRequest(Methods.delete, '/databases', 200, requestBody);
297+
const response = await sendDeleteRequest(
298+
ResourcePath.Databases,
299+
requestBody
300+
);
301+
await t.expect(await response.status).eql(200);
290302
}
291303
}
292304

@@ -300,7 +312,11 @@ export class DatabaseAPIRequests {
300312
connectionType
301313
);
302314
const requestBody = { ids: [`${databaseIds}`] };
303-
await sendRequest(Methods.delete, '/databases', 200, requestBody);
315+
const response = await sendDeleteRequest(
316+
ResourcePath.Databases,
317+
requestBody
318+
);
319+
await t.expect(await response.status).eql(200);
304320
}
305321

306322
/**
@@ -327,11 +343,12 @@ export class DatabaseAPIRequests {
327343
const databaseId = await this.getDatabaseIdByName(
328344
databaseParameters.ossClusterDatabaseName
329345
);
330-
const response = await sendRequest(
331-
Methods.get,
332-
`/databases/${databaseId}/cluster-details`,
333-
200
334-
);
346+
const resourcePath =
347+
ResourcePath.Databases + databaseId + ResourcePath.ClusterDetails;
348+
const response = await sendGetRequest(resourcePath);
349+
350+
await t.expect(await response.status).eql(200);
351+
335352
const nodes = await response.body.nodes;
336353
const nodeNames = await nodes.map(
337354
(node: ClusterNodes) => `${node.host}:${node.port}`

tests/e2e/helpers/api/api-info.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
1-
import { sendRequest } from './api-common';
2-
import { Methods } from '../constants';
1+
import { t } from 'testcafe';
2+
import { sendPostRequest } from './api-common';
3+
import { ResourcePath } from '../constants';
34

45
/**
56
* Synchronize features
67
*/
78
export async function syncFeaturesApi(): Promise<void> {
8-
await sendRequest(Methods.post, '/features/sync', 200);
9+
const response = await sendPostRequest(ResourcePath.SyncFeatures);
10+
11+
await t.expect(await response.status).eql(200);
912
}

0 commit comments

Comments
 (0)