Skip to content

Commit 971f78a

Browse files
committed
Topic messages
1 parent 9b678eb commit 971f78a

File tree

4 files changed

+103
-13
lines changed

4 files changed

+103
-13
lines changed

e2e-playwright/src/features/TopicsMessages.feature

Lines changed: 71 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,17 +49,85 @@ Feature: Produce Messages page
4949
Then Header starts with: "ANewAutoTopic"
5050
Given TopicName menu button clicked
5151
Then TopicNameMenu clear messages active is: "true"
52-
5352
When TopicNameMenu edit settings clicked
5453
When TopicName cleanup policy set to: "Compact"
5554
When TopicName UpdateTopic button clicked
5655
Then Header starts with: "ANewAutoTopic"
5756
Given TopicName menu button clicked
5857
Then TopicNameMenu clear messages active is: "false"
59-
6058
When TopicNameMenu edit settings clicked
6159
When TopicName cleanup policy set to: "Delete"
6260
When TopicName UpdateTopic button clicked
6361
Then Header starts with: "ANewAutoTopic"
6462
Given TopicName menu button clicked
65-
Then TopicNameMenu clear messages active is: "true"
63+
Then TopicNameMenu clear messages active is: "true"
64+
65+
Scenario: Produce messages clear messages
66+
Given Topics is visible
67+
When click on Topics link
68+
Given Topics AddATopic clicked
69+
Given TopicCreate heading visible is: "true"
70+
When TopicCreate Topic name starts with: "ANewAutoTopic"
71+
When TopicCreate Number of partitons: 1
72+
When TopicCreate Time to retain data one day
73+
When TopicCreate Create topic clicked
74+
Then Header starts with: "ANewAutoTopic"
75+
Given Produce message clicked
76+
Then ProduceMessage header visible
77+
Given ProduceMessage Key input is: "keyFromAutotest"
78+
Given ProduceMessage Value input is: "ValueFromAutotest"
79+
Given ProduceMessage Headers input key is: "headerKey", value is: "headerValue"
80+
Given ProduceMessage Produce Message button clicked
81+
When Topics TopicName Messages clicked
82+
Then TopicName messages contains key: "keyFromAutotest"
83+
Then TopicName messages contains value: "ValueFromAutotest"
84+
Then TopicName messages contains headers key is: "headerKey", value is: "headerValue"
85+
Then Topics TopicName Overview click
86+
Then TopicName messages count is "1"
87+
Given Produce message clicked
88+
Given ProduceMessage Key input is: "keyFromAutotest2"
89+
Given ProduceMessage Value input is: "ValueFromAutotest2"
90+
Given ProduceMessage Headers input key is: "headerKey2", value is: "headerValue2"
91+
Given ProduceMessage Produce Message button clicked
92+
Then TopicName messages count is "2"
93+
When TopicName clear messages clicked
94+
Then TopicName messages count is "0"
95+
96+
Given Produce message clicked
97+
Given ProduceMessage Key input is: "keyFromAutotest3"
98+
Given ProduceMessage Value input is: "ValueFromAutotest3"
99+
Given ProduceMessage Headers input key is: "headerKey3", value is: "headerValue3"
100+
Given ProduceMessage Produce Message button clicked
101+
Then TopicName messages count is "1"
102+
Given Produce message clicked
103+
Given ProduceMessage Key input is: "keyFromAutotest4"
104+
Given ProduceMessage Value input is: "ValueFromAutotest4"
105+
Given ProduceMessage Headers input key is: "headerKey4", value is: "headerValue4"
106+
Given ProduceMessage Produce Message button clicked
107+
Then TopicName messages count is "2"
108+
When TopicName menu button clicked
109+
When TopicName menu clear messages clicked
110+
Then TopicName messages count is "0"
111+
112+
Given Produce message clicked
113+
Given ProduceMessage Key input is: "keyFromAutotest5"
114+
Given ProduceMessage Value input is: "ValueFromAutotest5"
115+
Given ProduceMessage Headers input key is: "headerKey5", value is: "headerValue5"
116+
Given ProduceMessage Produce Message button clicked
117+
Then TopicName messages count is "1"
118+
Given Produce message clicked
119+
Given ProduceMessage Key input is: "keyFromAutotest6"
120+
Given ProduceMessage Value input is: "ValueFromAutotest6"
121+
Given ProduceMessage Headers input key is: "headerKey6", value is: "headerValue6"
122+
Given ProduceMessage Produce Message button clicked
123+
Then TopicName messages count is "2"
124+
When TopicName menu button clicked
125+
When TopicName menu RecreateTopic clicked
126+
Then TopicName messages count is "0"
127+
128+
Given Produce message clicked
129+
Given ProduceMessage Key input is: "keyFromAutotest7"
130+
Given ProduceMessage Value input is: "ValueFromAutotest7"
131+
Given ProduceMessage Headers input key is: "headerKey7", value is: "headerValue7"
132+
Given ProduceMessage Produce Message button clicked
133+
Then TopicName messages count is "1"

e2e-playwright/src/pages/Topics/TopicsTopickNameLocators.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,14 @@ export default class TopicsTopickNameLocators {
2020

2121
get menuItemEditSettings():Locator { return this.page.getByRole('menuitem', { name: 'Edit settings Pay attention!' }) }
2222
get menuItemClearMessages():Locator { return this.page.getByText('Clear messagesClearing') }
23+
get menuItemRecreateTopic():Locator { return this.page.getByText('Recreate Topic') }
24+
get confirm():Locator { return this.page.getByRole('button', { name: 'Confirm' }) }
2325

2426
get cleanupPolicyDropdown():Locator { return this.page.getByRole('listbox', { name: 'Cleanup policy' }) }
2527
get updateTopicButton():Locator { return this.page.getByRole('button', { name: 'Update topic' }) }
28+
get messagesDropdown():Locator { return this.page.getByRole('cell', { name: 'Dropdown Toggle' }).getByLabel('Dropdown Toggle') }
29+
get clearMessages():Locator { return this.page.getByText('Clear Messages', { exact: true }) }
30+
get deleteSuccess():Locator { return this.page.getByRole('heading', { name: 'Success' }) }
2631

2732
heading(topicName: string): Locator { return this.page.getByText(`Topics${topicName}`); }
2833
partitions(value: string):Locator { return this.page.getByRole('group').getByText(value).first(); }
@@ -34,4 +39,6 @@ export default class TopicsTopickNameLocators {
3439
messageHeadersTextbox(value: string):Locator { return this.page.locator('div').filter({ hasText: value }).nth(1); }
3540

3641
cleanupPolicyDropdownItem(value: string):Locator { return this.page.getByRole('option', { name: value, exact: true }); }
42+
43+
messagesCount(value: string):Locator { return this.page.getByText(`Message Count ${value}`); }
3744
}

e2e-playwright/src/steps/ProduceMessages.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,4 +109,28 @@ When('TopicName cleanup policy set to: {string}', async function(this: Playwrigh
109109

110110
When('TopicName UpdateTopic button clicked', async function(this: PlaywrightWorld) {
111111
await this.locators.topicTopicName.updateTopicButton.click();
112+
});
113+
114+
Then('Topics TopicName Overview click', async function(this: PlaywrightWorld) {
115+
await this.locators.topicTopicName.overview.click();
116+
});
117+
118+
Then('TopicName messages count is {string}', async function(this: PlaywrightWorld, expectedCount: string) {
119+
await expectVisibility(this.locators.topicTopicName.messagesCount(expectedCount), "true");
120+
});
121+
122+
When('TopicName clear messages clicked', async function(this: PlaywrightWorld) {
123+
await this.locators.topicTopicName.messagesDropdown.click();
124+
await this.locators.topicTopicName.clearMessages.click();
125+
});
126+
127+
When('TopicName menu clear messages clicked', async function(this: PlaywrightWorld) {
128+
await this.locators.topicTopicName.menuItemClearMessages.click();
129+
await this.locators.topicTopicName.confirm.click();
130+
}
131+
);
132+
133+
When('TopicName menu RecreateTopic clicked', async function(this: PlaywrightWorld) {
134+
await this.locators.topicTopicName.menuItemRecreateTopic.click();
135+
await this.locators.topicTopicName.confirm.click();
112136
});

e2e-playwright/src/steps/SchemaRegistry.steps.ts

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Given, When, Then, setDefaultTimeout } from "@cucumber/cucumber";
33
import { PlaywrightWorld } from "../support/PlaywrightWorld";
44
import { expectVisibility } from "../services/uiHelper";
55
import { generateName } from "../services/commonFunctions";
6-
import { getAvroSchema, getAvroUpdatedSchema, getAvroSchemaValid, getJsonSchema, getProtobufSchema } from "../services/schemas"
6+
import { getAvroSchema, getAvroUpdatedSchema, getJsonSchema, getProtobufSchema } from "../services/schemas"
77
import { clearWithSelectAll } from '../services/commonFunctions'
88

99
setDefaultTimeout(60 * 1000 * 2);
@@ -95,15 +95,6 @@ Given('SchemaRegistrySchemaNameEdit New schema is update avro not valid', async
9595
await textBox.type(schema)
9696
});
9797

98-
Given('SchemaRegistrySchemaNameEdit New schema is update avro valid', async function(this: PlaywrightWorld) {
99-
const schema = getAvroSchemaValid();
100-
const textBox = this.locators.schemaName.newSchemaTextbox;
101-
await textBox.click();
102-
await clearWithSelectAll(this.page);
103-
await textBox.focus();
104-
await textBox.type(schema)
105-
});
106-
10798
Given(
10899
'SchemaRegistrySchemaNameEdit old Compatibility is: {string}, new Compatibility is: {string}',
109100
async function(this: PlaywrightWorld, oldLevel: string, newLevel: string) {

0 commit comments

Comments
 (0)