Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 48 additions & 9 deletions tests/e2e/helpers/api/api-keys.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import { t } from 'testcafe';
import { AddNewDatabaseParameters } from '../../pageObjects/components/myRedisDatabase/add-redis-database';
import {
HashKeyParameters,
StringKeyParameters,
ListKeyParameters,
SetKeyParameters,
SortedSetKeyParameters,
Expand All @@ -28,8 +29,11 @@ export class APIKeyRequests {
databaseParameters.databaseName
);
const requestBody = {
keyName: keyParameters.keyName,
keyName: Buffer.from(keyParameters.keyName, 'utf-8'),
fields: keyParameters.fields
.map((fields) => ({ ...fields,
field: Buffer.from(fields.field, 'utf-8'),
value: Buffer.from(fields.value, 'utf-8') }))
};
const response = await sendPostRequest(
`/databases/${databaseId}/hash?encoding=buffer`,
Expand All @@ -54,14 +58,21 @@ export class APIKeyRequests {
databaseParameters.databaseName
);
const requestBody = {
keyName: keyParameters.keyName,
keyName: Buffer.from(keyParameters.keyName, 'utf-8'),
entries: keyParameters.entries
.map((member) =>
({
...member,
fields: member.fields.map(({ name, value }) => ({
name: Buffer.from(name, 'utf-8'),
value: Buffer.from(value, 'utf-8')
}))
}))
};
const response = await sendPostRequest(
`/databases/${databaseId}/streams?encoding=buffer`,
requestBody
);

await t
.expect(response.status)
.eql(201, 'The creation of new Stream key request failed');
Expand All @@ -80,8 +91,9 @@ export class APIKeyRequests {
databaseParameters.databaseName
);
const requestBody = {
keyName: keyParameters.keyName,
keyName: Buffer.from(keyParameters.keyName, 'utf-8'),
members: keyParameters.members
.map((member) => (Buffer.from(member, 'utf-8')))
};
const response = await sendPostRequest(
`/databases/${databaseId}/set?encoding=buffer`,
Expand All @@ -106,8 +118,9 @@ export class APIKeyRequests {
databaseParameters.databaseName
);
const requestBody = {
keyName: keyParameters.keyName,
keyName: Buffer.from(keyParameters.keyName, 'utf-8'),
members: keyParameters.members
.map((member) => ({ ...member, name: Buffer.from(member.name, 'utf-8') }))
};
const response = await sendPostRequest(
`/databases/${databaseId}/zSet?encoding=buffer`,
Expand All @@ -132,8 +145,8 @@ export class APIKeyRequests {
databaseParameters.databaseName
);
const requestBody = {
keyName: keyParameters.keyName,
element: keyParameters.element
keyName: Buffer.from(keyParameters.keyName, 'utf-8'),
element: Buffer.from(keyParameters.element, 'utf-8')
};
const response = await sendPostRequest(
`/databases/${databaseId}/list?encoding=buffer`,
Expand All @@ -145,10 +158,36 @@ export class APIKeyRequests {
.eql(201, 'The creation of new List key request failed');
}

/**
* Add String key
* @param keyParameters The key parameters
* @param databaseParameters The database parameters
*/
async addStringKeyApi(
keyParameters: StringKeyParameters,
databaseParameters: AddNewDatabaseParameters
): Promise<void> {
const databaseId = await databaseAPIRequests.getDatabaseIdByName(
databaseParameters.databaseName
);
const requestBody = {
keyName: Buffer.from(keyParameters.keyName, 'utf-8'),
value: Buffer.from(keyParameters.value, 'utf-8')
};
const response = await sendPostRequest(
`/databases/${databaseId}/string?encoding=buffer`,
requestBody
);

await t
.expect(response.status)
.eql(201, 'The creation of new string key request failed');
}

/**
* Search Key by name
* @param keyName The key name
* @param databaseParameters The database parameters
* @param databaseName The database name
*/
async searchKeyByNameApi(
keyName: string,
Expand All @@ -172,7 +211,7 @@ export class APIKeyRequests {
/**
* Delete Key by name if it exists
* @param keyName The key name
* @param databaseParameters The database parameters
* @param databaseName The database name
*/
async deleteKeyByNameApi(
keyName: string,
Expand Down
17 changes: 15 additions & 2 deletions tests/e2e/pageObjects/browser-page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1105,7 +1105,10 @@ export type StreamKeyParameters = {
keyName: string,
entries: {
id: string,
fields: string[][]
fields: {
name: string,
value: string
}[]
}[]
};

Expand All @@ -1130,7 +1133,7 @@ export type SortedSetKeyParameters = {
keyName: string,
members: {
name: string,
score: string
score: number
}[]
};

Expand All @@ -1144,6 +1147,16 @@ export type ListKeyParameters = {
element: string
};

/**
* String key parameters
* @param keyName The name of the key
* @param value The value in the string
*/
export type StringKeyParameters = {
keyName: string,
value: string
};

/**
* The key arguments for multiple keys/fields adding
* @param keysCount The number of keys to add
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@ import { TriggersAndFunctionLibrary } from '../../../interfaces/triggers-and-fun
import { CommonElementsActions } from '../../../common-actions/common-elements-actions';
import { Common } from '../../../helpers/common';
import { APIKeyRequests } from '../../../helpers/api/api-keys';
import {
StreamKeyParameters
} from '../../../pageObjects/browser-page';

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

await browserPage.addStreamKey(streamKeyName, 'keyField', 'keyValue');
const streamKeyParameters: StreamKeyParameters = {
keyName: streamKeyName,
entries: [{
id: '*',
fields: [{
name: 'keyField',
value: 'keyValue'
}]
}]
};
await apiKeyRequests.addStreamKeyApi(streamKeyParameters, ossStandaloneRedisGears);
await t.click(browserPage.NavigationPanel.triggeredFunctionsButton);
await t.click(triggersAndFunctionsFunctionsPage.librariesLink);
await t.click(triggersAndFunctionsLibrariesPage.addLibraryButton);
Expand Down