Skip to content

Commit 75fce87

Browse files
Merge branch 'main' into feature/e2e-ack-claim-tests
2 parents fabfe3e + 1397e4b commit 75fce87

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
@@ -77,6 +77,8 @@ export class BrowserPage {
7777
claimPendingMessageButton = Selector('[data-testid=claim-pending-message]');
7878
submitButton = Selector('[data-testid=btn-submit]');
7979
consumerDestinationSelect = Selector('[data-testid=destination-select]');
80+
removeConsumerButton = Selector('[data-testid^=remove-consumer-button]');
81+
removeConsumerGroupButton = Selector('[data-testid^=remove-groups-button]');
8082
//CONTAINERS
8183
streamGroupsContainer = Selector('[data-testid=stream-groups-container]');
8284
streamConsumersContainer = Selector('[data-testid=stream-consumers-container]');
@@ -206,6 +208,7 @@ export class BrowserPage {
206208
errorMessage = Selector('[data-test-subj=toast-error]');
207209
entryIdError = Selector('[data-testid=id-error]');
208210
pendingCount = Selector('[data-testid=pending-count]');
211+
lastRefreshMessage = Selector('[data-testid=refresh-message]');
209212

210213
/**
211214
* 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)