Skip to content

Commit b98370b

Browse files
Merge pull request #2452 from RedisInsight/e2e/bugfix/add_keys_via_api
add api key adding
2 parents 5da5a7e + cd31877 commit b98370b

File tree

3 files changed

+77
-12
lines changed

3 files changed

+77
-12
lines changed

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

Lines changed: 48 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { t } from 'testcafe';
22
import { AddNewDatabaseParameters } from '../../pageObjects/components/myRedisDatabase/add-redis-database';
33
import {
44
HashKeyParameters,
5+
StringKeyParameters,
56
ListKeyParameters,
67
SetKeyParameters,
78
SortedSetKeyParameters,
@@ -28,8 +29,11 @@ export class APIKeyRequests {
2829
databaseParameters.databaseName
2930
);
3031
const requestBody = {
31-
keyName: keyParameters.keyName,
32+
keyName: Buffer.from(keyParameters.keyName, 'utf-8'),
3233
fields: keyParameters.fields
34+
.map((fields) => ({ ...fields,
35+
field: Buffer.from(fields.field, 'utf-8'),
36+
value: Buffer.from(fields.value, 'utf-8') }))
3337
};
3438
const response = await sendPostRequest(
3539
`/databases/${databaseId}/hash?encoding=buffer`,
@@ -54,14 +58,21 @@ export class APIKeyRequests {
5458
databaseParameters.databaseName
5559
);
5660
const requestBody = {
57-
keyName: keyParameters.keyName,
61+
keyName: Buffer.from(keyParameters.keyName, 'utf-8'),
5862
entries: keyParameters.entries
63+
.map((member) =>
64+
({
65+
...member,
66+
fields: member.fields.map(({ name, value }) => ({
67+
name: Buffer.from(name, 'utf-8'),
68+
value: Buffer.from(value, 'utf-8')
69+
}))
70+
}))
5971
};
6072
const response = await sendPostRequest(
6173
`/databases/${databaseId}/streams?encoding=buffer`,
6274
requestBody
6375
);
64-
6576
await t
6677
.expect(response.status)
6778
.eql(201, 'The creation of new Stream key request failed');
@@ -80,8 +91,9 @@ export class APIKeyRequests {
8091
databaseParameters.databaseName
8192
);
8293
const requestBody = {
83-
keyName: keyParameters.keyName,
94+
keyName: Buffer.from(keyParameters.keyName, 'utf-8'),
8495
members: keyParameters.members
96+
.map((member) => (Buffer.from(member, 'utf-8')))
8597
};
8698
const response = await sendPostRequest(
8799
`/databases/${databaseId}/set?encoding=buffer`,
@@ -106,8 +118,9 @@ export class APIKeyRequests {
106118
databaseParameters.databaseName
107119
);
108120
const requestBody = {
109-
keyName: keyParameters.keyName,
121+
keyName: Buffer.from(keyParameters.keyName, 'utf-8'),
110122
members: keyParameters.members
123+
.map((member) => ({ ...member, name: Buffer.from(member.name, 'utf-8') }))
111124
};
112125
const response = await sendPostRequest(
113126
`/databases/${databaseId}/zSet?encoding=buffer`,
@@ -132,8 +145,8 @@ export class APIKeyRequests {
132145
databaseParameters.databaseName
133146
);
134147
const requestBody = {
135-
keyName: keyParameters.keyName,
136-
element: keyParameters.element
148+
keyName: Buffer.from(keyParameters.keyName, 'utf-8'),
149+
element: Buffer.from(keyParameters.element, 'utf-8')
137150
};
138151
const response = await sendPostRequest(
139152
`/databases/${databaseId}/list?encoding=buffer`,
@@ -145,10 +158,36 @@ export class APIKeyRequests {
145158
.eql(201, 'The creation of new List key request failed');
146159
}
147160

161+
/**
162+
* Add String key
163+
* @param keyParameters The key parameters
164+
* @param databaseParameters The database parameters
165+
*/
166+
async addStringKeyApi(
167+
keyParameters: StringKeyParameters,
168+
databaseParameters: AddNewDatabaseParameters
169+
): Promise<void> {
170+
const databaseId = await databaseAPIRequests.getDatabaseIdByName(
171+
databaseParameters.databaseName
172+
);
173+
const requestBody = {
174+
keyName: Buffer.from(keyParameters.keyName, 'utf-8'),
175+
value: Buffer.from(keyParameters.value, 'utf-8')
176+
};
177+
const response = await sendPostRequest(
178+
`/databases/${databaseId}/string?encoding=buffer`,
179+
requestBody
180+
);
181+
182+
await t
183+
.expect(response.status)
184+
.eql(201, 'The creation of new string key request failed');
185+
}
186+
148187
/**
149188
* Search Key by name
150189
* @param keyName The key name
151-
* @param databaseParameters The database parameters
190+
* @param databaseName The database name
152191
*/
153192
async searchKeyByNameApi(
154193
keyName: string,
@@ -172,7 +211,7 @@ export class APIKeyRequests {
172211
/**
173212
* Delete Key by name if it exists
174213
* @param keyName The key name
175-
* @param databaseParameters The database parameters
214+
* @param databaseName The database name
176215
*/
177216
async deleteKeyByNameApi(
178217
keyName: string,

tests/e2e/pageObjects/browser-page.ts

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1105,7 +1105,10 @@ export type StreamKeyParameters = {
11051105
keyName: string,
11061106
entries: {
11071107
id: string,
1108-
fields: string[][]
1108+
fields: {
1109+
name: string,
1110+
value: string
1111+
}[]
11091112
}[]
11101113
};
11111114

@@ -1130,7 +1133,7 @@ export type SortedSetKeyParameters = {
11301133
keyName: string,
11311134
members: {
11321135
name: string,
1133-
score: string
1136+
score: number
11341137
}[]
11351138
};
11361139

@@ -1144,6 +1147,16 @@ export type ListKeyParameters = {
11441147
element: string
11451148
};
11461149

1150+
/**
1151+
* String key parameters
1152+
* @param keyName The name of the key
1153+
* @param value The value in the string
1154+
*/
1155+
export type StringKeyParameters = {
1156+
keyName: string,
1157+
value: string
1158+
};
1159+
11471160
/**
11481161
* The key arguments for multiple keys/fields adding
11491162
* @param keysCount The number of keys to add

tests/e2e/tests/regression/triggers-and-functions/libraries.e2e.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ import { TriggersAndFunctionLibrary } from '../../../interfaces/triggers-and-fun
1212
import { CommonElementsActions } from '../../../common-actions/common-elements-actions';
1313
import { Common } from '../../../helpers/common';
1414
import { APIKeyRequests } from '../../../helpers/api/api-keys';
15+
import {
16+
StreamKeyParameters
17+
} from '../../../pageObjects/browser-page';
1518

1619
const browserPage = new BrowserPage();
1720
const databaseHelper = new DatabaseHelper();
@@ -163,7 +166,17 @@ test.after(async() => {
163166
const command1 = `#!js api_version=1.0 name=${libraryName}`;
164167
const command2 = `redis.registerStreamTrigger('${LIBRARIES_LIST[3].name}', 'name', function(){});`;
165168

166-
await browserPage.addStreamKey(streamKeyName, 'keyField', 'keyValue');
169+
const streamKeyParameters: StreamKeyParameters = {
170+
keyName: streamKeyName,
171+
entries: [{
172+
id: '*',
173+
fields: [{
174+
name: 'keyField',
175+
value: 'keyValue'
176+
}]
177+
}]
178+
};
179+
await apiKeyRequests.addStreamKeyApi(streamKeyParameters, ossStandaloneRedisGears);
167180
await t.click(browserPage.NavigationPanel.triggeredFunctionsButton);
168181
await t.click(triggersAndFunctionsFunctionsPage.librariesLink);
169182
await t.click(triggersAndFunctionsLibrariesPage.addLibraryButton);

0 commit comments

Comments
 (0)