Skip to content

Commit b3dcc93

Browse files
Merge pull request #2434 from RedisInsight/e2e/bugfix/useApiKeyDelete
use Api delete keys part #1
2 parents c6a7da8 + b2cbe8d commit b3dcc93

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

53 files changed

+362
-277
lines changed

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

Lines changed: 165 additions & 187 deletions
Original file line numberDiff line numberDiff line change
@@ -13,206 +13,184 @@ import { DatabaseAPIRequests } from './api-database';
1313
const databaseAPIRequests = new DatabaseAPIRequests();
1414

1515
const bufferPathMask = '/databases/databaseId/keys?encoding=buffer';
16+
export class APIKeyRequests {
17+
18+
/**
19+
* Add Hash key
20+
* @param keyParameters The key parameters
21+
* @param databaseParameters The database parameters
22+
*/
23+
async addHashKeyApi(
24+
keyParameters: HashKeyParameters,
25+
databaseParameters: AddNewDatabaseParameters
26+
): Promise<void> {
27+
const databaseId = await databaseAPIRequests.getDatabaseIdByName(
28+
databaseParameters.databaseName
29+
);
30+
const requestBody = {
31+
keyName: keyParameters.keyName,
32+
fields: keyParameters.fields
33+
};
34+
const response = await sendPostRequest(
35+
`/databases/${databaseId}/hash?encoding=buffer`,
36+
requestBody
37+
);
1638

17-
/**
18-
* Add Hash key
19-
* @param keyParameters The key parameters
20-
* @param databaseParameters The database parameters
21-
*/
22-
export async function addHashKeyApi(
23-
keyParameters: HashKeyParameters,
24-
databaseParameters: AddNewDatabaseParameters
25-
): Promise<void> {
26-
const databaseId = await databaseAPIRequests.getDatabaseIdByName(
27-
databaseParameters.databaseName
28-
);
29-
const requestBody = {
30-
keyName: keyParameters.keyName,
31-
fields: keyParameters.fields
32-
};
33-
const response = await sendPostRequest(
34-
`/databases/${databaseId}/hash?encoding=buffer`,
35-
requestBody
36-
);
37-
38-
await t
39-
.expect(response.status)
40-
.eql(201, 'The creation of new Hash key request failed');
41-
}
42-
43-
/**
44-
* Add Stream key
45-
* @param keyParameters The key parameters
46-
* @param databaseParameters The database parameters
47-
*/
48-
export async function addStreamKeyApi(
49-
keyParameters: StreamKeyParameters,
50-
databaseParameters: AddNewDatabaseParameters
51-
): Promise<void> {
52-
const databaseId = await databaseAPIRequests.getDatabaseIdByName(
53-
databaseParameters.databaseName
54-
);
55-
const requestBody = {
56-
keyName: keyParameters.keyName,
57-
entries: keyParameters.entries
58-
};
59-
const response = await sendPostRequest(
60-
`/databases/${databaseId}/streams?encoding=buffer`,
61-
requestBody
62-
);
63-
64-
await t
65-
.expect(response.status)
66-
.eql(201, 'The creation of new Stream key request failed');
67-
}
68-
69-
/**
70-
* Add Set key
71-
* @param keyParameters The key parameters
72-
* @param databaseParameters The database parameters
73-
*/
74-
export async function addSetKeyApi(
75-
keyParameters: SetKeyParameters,
76-
databaseParameters: AddNewDatabaseParameters
77-
): Promise<void> {
78-
const databaseId = await databaseAPIRequests.getDatabaseIdByName(
79-
databaseParameters.databaseName
80-
);
81-
const requestBody = {
82-
keyName: keyParameters.keyName,
83-
members: keyParameters.members
84-
};
85-
const response = await sendPostRequest(
86-
`/databases/${databaseId}/set?encoding=buffer`,
87-
requestBody
88-
);
39+
await t
40+
.expect(response.status)
41+
.eql(201, 'The creation of new Hash key request failed');
42+
}
8943

90-
await t
91-
.expect(response.status)
92-
.eql(201, 'The creation of new Set key request failed');
93-
}
44+
/**
45+
* Add Stream key
46+
* @param keyParameters The key parameters
47+
* @param databaseParameters The database parameters
48+
*/
49+
async addStreamKeyApi(
50+
keyParameters: StreamKeyParameters,
51+
databaseParameters: AddNewDatabaseParameters
52+
): Promise<void> {
53+
const databaseId = await databaseAPIRequests.getDatabaseIdByName(
54+
databaseParameters.databaseName
55+
);
56+
const requestBody = {
57+
keyName: keyParameters.keyName,
58+
entries: keyParameters.entries
59+
};
60+
const response = await sendPostRequest(
61+
`/databases/${databaseId}/streams?encoding=buffer`,
62+
requestBody
63+
);
9464

95-
/**
96-
* Add Sorted Set key
97-
* @param keyParameters The key parameters
98-
* @param databaseParameters The database parameters
99-
*/
100-
export async function addSortedSetKeyApi(
101-
keyParameters: SortedSetKeyParameters,
102-
databaseParameters: AddNewDatabaseParameters
103-
): Promise<void> {
104-
const databaseId = await databaseAPIRequests.getDatabaseIdByName(
105-
databaseParameters.databaseName
106-
);
107-
const requestBody = {
108-
keyName: keyParameters.keyName,
109-
members: keyParameters.members
110-
};
111-
const response = await sendPostRequest(
112-
`/databases/${databaseId}/zSet?encoding=buffer`,
113-
requestBody
114-
);
65+
await t
66+
.expect(response.status)
67+
.eql(201, 'The creation of new Stream key request failed');
68+
}
11569

116-
await t
117-
.expect(response.status)
118-
.eql(201, 'The creation of new Sorted Set key request failed');
119-
}
70+
/**
71+
* Add Set key
72+
* @param keyParameters The key parameters
73+
* @param databaseParameters The database parameters
74+
*/
75+
async addSetKeyApi(
76+
keyParameters: SetKeyParameters,
77+
databaseParameters: AddNewDatabaseParameters
78+
): Promise<void> {
79+
const databaseId = await databaseAPIRequests.getDatabaseIdByName(
80+
databaseParameters.databaseName
81+
);
82+
const requestBody = {
83+
keyName: keyParameters.keyName,
84+
members: keyParameters.members
85+
};
86+
const response = await sendPostRequest(
87+
`/databases/${databaseId}/set?encoding=buffer`,
88+
requestBody
89+
);
12090

121-
/**
122-
* Add List key
123-
* @param keyParameters The key parameters
124-
* @param databaseParameters The database parameters
125-
*/
126-
export async function addListKeyApi(
127-
keyParameters: ListKeyParameters,
128-
databaseParameters: AddNewDatabaseParameters
129-
): Promise<void> {
130-
const databaseId = await databaseAPIRequests.getDatabaseIdByName(
131-
databaseParameters.databaseName
132-
);
133-
const requestBody = {
134-
keyName: keyParameters.keyName,
135-
element: keyParameters.element
136-
};
137-
const response = await sendPostRequest(
138-
`/databases/${databaseId}/list?encoding=buffer`,
139-
requestBody
140-
);
91+
await t
92+
.expect(response.status)
93+
.eql(201, 'The creation of new Set key request failed');
94+
}
14195

142-
await t
143-
.expect(response.status)
144-
.eql(201, 'The creation of new List key request failed');
145-
}
96+
/**
97+
* Add Sorted Set key
98+
* @param keyParameters The key parameters
99+
* @param databaseParameters The database parameters
100+
*/
101+
async addSortedSetKeyApi(
102+
keyParameters: SortedSetKeyParameters,
103+
databaseParameters: AddNewDatabaseParameters
104+
): Promise<void> {
105+
const databaseId = await databaseAPIRequests.getDatabaseIdByName(
106+
databaseParameters.databaseName
107+
);
108+
const requestBody = {
109+
keyName: keyParameters.keyName,
110+
members: keyParameters.members
111+
};
112+
const response = await sendPostRequest(
113+
`/databases/${databaseId}/zSet?encoding=buffer`,
114+
requestBody
115+
);
146116

147-
/**
148-
* Search Key by name
149-
* @param keyName The key name
150-
* @param databaseParameters The database parameters
151-
*/
152-
export async function searchKeyByNameApi(
153-
keyName: string,
154-
databaseParameters: AddNewDatabaseParameters
155-
): Promise<string[]> {
156-
const requestBody = {
157-
cursor: '0',
158-
match: keyName
159-
};
160-
const databaseId = await databaseAPIRequests.getDatabaseIdByName(
161-
databaseParameters.databaseName
162-
);
163-
const response = await sendPostRequest(
164-
bufferPathMask.replace('databaseId', databaseId),
165-
requestBody
166-
);
167-
await t.expect(response.status).eql(200, 'Getting key request failed');
168-
return await response.body[0].keys;
169-
}
117+
await t
118+
.expect(response.status)
119+
.eql(201, 'The creation of new Sorted Set key request failed');
120+
}
170121

171-
/**
172-
* Delete Key by name if it exists
173-
* @param keyName The key name
174-
* @param databaseParameters The database parameters
175-
*/
176-
export async function deleteKeyByNameApi(
177-
keyName: string,
178-
databaseParameters: AddNewDatabaseParameters
179-
): Promise<void> {
180-
const databaseId = await databaseAPIRequests.getDatabaseIdByName(
181-
databaseParameters.databaseName
182-
);
183-
const isKeyExist = await searchKeyByNameApi(keyName, databaseParameters);
184-
if (isKeyExist.length > 0) {
185-
const requestBody = { keyNames: [Buffer.from(keyName, 'utf-8')] };
186-
const response = await sendDeleteRequest(
187-
bufferPathMask.replace('databaseId', databaseId),
122+
/**
123+
* Add List key
124+
* @param keyParameters The key parameters
125+
* @param databaseParameters The database parameters
126+
*/
127+
async addListKeyApi(
128+
keyParameters: ListKeyParameters,
129+
databaseParameters: AddNewDatabaseParameters
130+
): Promise<void> {
131+
const databaseId = await databaseAPIRequests.getDatabaseIdByName(
132+
databaseParameters.databaseName
133+
);
134+
const requestBody = {
135+
keyName: keyParameters.keyName,
136+
element: keyParameters.element
137+
};
138+
const response = await sendPostRequest(
139+
`/databases/${databaseId}/list?encoding=buffer`,
188140
requestBody
189141
);
142+
190143
await t
191144
.expect(response.status)
192-
.eql(200, 'The deletion of the key request failed');
145+
.eql(201, 'The creation of new List key request failed');
193146
}
194-
}
195147

196-
/**
197-
* Delete Keys by names
198-
* @param keyNames The names of keys
199-
* @param databaseParameters The database parameters
200-
*/
201-
export async function deleteKeysApi(
202-
keyNames: string[],
203-
databaseParameters: AddNewDatabaseParameters
204-
): Promise<void> {
205-
const databaseId = await databaseAPIRequests.getDatabaseIdByName(
206-
databaseParameters.databaseName
207-
);
208-
const bufferKeyNames = keyNames.forEach((key) => Buffer.from(key, 'utf-8'));
209-
const requestBody = { keyNames: bufferKeyNames };
210-
const response = await sendPostRequest(
211-
bufferPathMask.replace('databaseId', databaseId),
212-
requestBody
213-
);
148+
/**
149+
* Search Key by name
150+
* @param keyName The key name
151+
* @param databaseParameters The database parameters
152+
*/
153+
async searchKeyByNameApi(
154+
keyName: string,
155+
databaseName: string
156+
): Promise<string[]> {
157+
const requestBody = {
158+
cursor: '0',
159+
match: keyName
160+
};
161+
const databaseId = await databaseAPIRequests.getDatabaseIdByName(
162+
databaseName
163+
);
164+
const response = await sendPostRequest(
165+
bufferPathMask.replace('databaseId', databaseId),
166+
requestBody
167+
);
168+
await t.expect(response.status).eql(200, 'Getting key request failed');
169+
return await response.body[0].keys;
170+
}
214171

215-
await t
216-
.expect(response.status)
217-
.eql(200, 'The deletion of the keys request failed');
172+
/**
173+
* Delete Key by name if it exists
174+
* @param keyName The key name
175+
* @param databaseParameters The database parameters
176+
*/
177+
async deleteKeyByNameApi(
178+
keyName: string,
179+
databaseName: string
180+
): Promise<void> {
181+
const databaseId = await databaseAPIRequests.getDatabaseIdByName(
182+
databaseName
183+
);
184+
const isKeyExist = await this.searchKeyByNameApi(keyName, databaseName);
185+
if (isKeyExist.length > 0) {
186+
const requestBody = { keyNames: [Buffer.from(keyName, 'utf-8')] };
187+
const response = await sendDeleteRequest(
188+
bufferPathMask.replace('databaseId', databaseId),
189+
requestBody
190+
);
191+
await t
192+
.expect(response.status)
193+
.eql(200, 'The deletion of the key request failed');
194+
}
195+
}
218196
}

tests/e2e/tests/critical-path/browser/consumer-group.e2e.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@ import {
77
} from '../../../helpers/conf';
88
import { DatabaseAPIRequests } from '../../../helpers/api/api-database';
99
import { Common } from '../../../helpers/common';
10+
import { APIKeyRequests } from '../../../helpers/api/api-keys';
1011

1112
const browserPage = new BrowserPage();
1213
const databaseHelper = new DatabaseHelper();
1314
const databaseAPIRequests = new DatabaseAPIRequests();
15+
const apiKeyRequests = new APIKeyRequests();
1416

1517
let keyName = Common.generateWord(20);
1618
let consumerGroupName = Common.generateWord(20);
@@ -33,7 +35,7 @@ fixture `Consumer group`
3335
if (await browserPage.closeKeyButton.exists, { timeout: 500 }) {
3436
await t.click(browserPage.closeKeyButton);
3537
}
36-
await browserPage.deleteKeyByName(keyName);
38+
await apiKeyRequests.deleteKeyByNameApi(keyName, ossStandaloneConfig.databaseName);
3739
await databaseAPIRequests.deleteStandaloneDatabaseApi(ossStandaloneConfig);
3840
});
3941
test('Verify that user can create a new Consumer Group in the current Stream', async t => {

0 commit comments

Comments
 (0)