Skip to content

Commit 1397e4b

Browse files
Merge pull request #803 from RedisInsight/feature/e2e-delete-consumer-tests
e2e - delete consumer and gonsumer group tests
2 parents 8118f5f + 4e3ee7f commit 1397e4b

File tree

2 files changed

+49
-0
lines changed

2 files changed

+49
-0
lines changed

tests/e2e/pageObjects/browser-page.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,8 @@ export class BrowserPage {
7272
confirmRemoveEntryButton = Selector('[data-testid^=remove-entry-button-]').withExactText('Remove');
7373
clearStreamEntryInputs = Selector('[data-testid=remove-item]');
7474
saveGroupsButton = Selector('[data-testid=save-groups-btn]');
75+
removeConsumerButton = Selector('[data-testid^=remove-consumer-button]');
76+
removeConsumerGroupButton = Selector('[data-testid^=remove-groups-button]');
7577
//CONTAINERS
7678
streamGroupsContainer = Selector('[data-testid=stream-groups-container]');
7779
streamConsumersContainer = Selector('[data-testid=stream-consumers-container]');
@@ -197,6 +199,7 @@ export class BrowserPage {
197199
entryIdInfoIcon = Selector('[data-testid=entry-id-info-icon]');
198200
errorMessage = Selector('[data-test-subj=toast-error]');
199201
entryIdError = Selector('[data-testid=id-error]');
202+
lastRefreshMessage = Selector('[data-testid=refresh-message]');
200203

201204
/**
202205
* Common part for Add any new key

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

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,3 +151,49 @@ test('Verify that user can navigate to Consumer Groups screen using the link in
151151
await t.click(browserPage.streamTabGroups);
152152
await t.expect(browserPage.streamTabGroups.withAttribute('aria-selected', 'true').exists).ok('The Consumer Groups screen is opened');
153153
});
154+
test('Verify that user can delete the Consumer from the Consumer Group', async t => {
155+
keyName = chance.word({ length: 20 });
156+
let consumerGroupName = chance.word({ length: 20 });
157+
const cliCommands = [
158+
`XGROUP CREATE ${keyName} ${consumerGroupName} $ MKSTREAM`,
159+
`XADD ${keyName} * message apple`,
160+
`XADD ${keyName} * message orange`,
161+
`XREADGROUP GROUP ${consumerGroupName} Alice COUNT 1 STREAMS ${keyName} >`,
162+
`XREADGROUP GROUP ${consumerGroupName} Bob COUNT 1 STREAMS ${keyName} >`
163+
];
164+
// Add New Stream Key with groups and consumers
165+
for(const command of cliCommands){
166+
await cliPage.sendCommandInCli(command);
167+
}
168+
// Open Stream consumer info view
169+
await browserPage.openKeyDetails(keyName);
170+
await t.click(browserPage.streamTabGroups);
171+
await t.click(browserPage.consumerGroup);
172+
// Delete consumer and check results
173+
const consumerCountBefore = await browserPage.streamConsumerName.count;
174+
await t.click(browserPage.removeConsumerButton);
175+
await t.expect(browserPage.confirmationMessagePopover.textContent).contains(`will be removed from Consumer Group ${consumerGroupName}`, 'The confirmation message');
176+
await t.click(browserPage.removeConsumerButton.nth(2));
177+
await t.expect(browserPage.streamConsumerName.count).eql(consumerCountBefore - 1, 'The Consumers number after deletion');
178+
});
179+
test('Verify that user can delete a Consumer Group', async t => {
180+
keyName = chance.word({ length: 20 });
181+
let consumerGroupName = chance.word({ length: 20 });
182+
const cliCommands = [
183+
`XGROUP CREATE ${keyName} ${consumerGroupName} $ MKSTREAM`,
184+
`XADD ${keyName} * message apple`,
185+
`XREADGROUP GROUP ${consumerGroupName} Alice COUNT 1 STREAMS ${keyName} >`
186+
];
187+
// Add New Stream Key with groups and consumers
188+
for(const command of cliCommands){
189+
await cliPage.sendCommandInCli(command);
190+
}
191+
// Open Stream consumer info view
192+
await browserPage.openKeyDetails(keyName);
193+
await t.click(browserPage.streamTabGroups);
194+
// Delete consumer group and check results
195+
await t.click(browserPage.removeConsumerGroupButton);
196+
await t.expect(browserPage.confirmationMessagePopover.textContent).contains(`${consumerGroupName}and all its consumers will be removed from ${keyName}`, 'The confirmation message');
197+
await t.click(browserPage.removeConsumerGroupButton.nth(1));
198+
await t.expect(browserPage.streamGroupsContainer.textContent).contains('Your Key has no Consumer Groups available.', 'The Consumer Group is removed from the table');
199+
});

0 commit comments

Comments
 (0)