@camunda/e2e-test-suite 0.0.899 → 0.0.901

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -128,7 +128,13 @@ class ModelerCreatePage {
128
128
  // labelled with the diagram name, which makes a role+name match on
129
129
  // 'User task' ambiguous as soon as such a diagram exists.
130
130
  this.userTaskOption = page.locator('.djs-popup-results [data-id="replace-with-user-task"]');
131
- this.priorityInput = page.getByRole('textbox', { name: 'priority' });
131
+ // The user-task priority field renders as
132
+ // `<input type="number" id="bio-properties-panel-priorityDefinitionPriority">`,
133
+ // whose ARIA role is `spinbutton`, not `textbox`. A role=textbox query only
134
+ // matches it while the entry is flipped into FEEL mode (a CodeMirror
135
+ // editor), which is not a state this flow should depend on. Target the
136
+ // number input by its stable id instead.
137
+ this.priorityInput = page.locator('#bio-properties-panel-priorityDefinitionPriority');
132
138
  this.appendEndEventButton = page.getByRole('button', {
133
139
  name: 'Append end event',
134
140
  });
@@ -507,11 +513,18 @@ class ModelerCreatePage {
507
513
  await this.page.waitForTimeout(1000);
508
514
  }
509
515
  async clickPriorityInput() {
516
+ // The properties panel remembers which groups are open, so from the second
517
+ // user task onwards Assignment is already expanded. The previous check used
518
+ // an invalid descendant selector ('...-group-header empty open') that always
519
+ // counted 0, so every call clicked the group again — collapsing it or landing
520
+ // on an arbitrary entry. Detect the header's real 'open' class instead and
521
+ // toggle via the header rather than the whole group box.
522
+ const assignmentHeader = this.assignmentSection.locator('.bio-properties-panel-group-header');
510
523
  const isExpanded = (await this.assignmentSection
511
- .locator('.bio-properties-panel-group-header empty open')
524
+ .locator('.bio-properties-panel-group-header.open')
512
525
  .count()) > 0;
513
526
  if (!isExpanded) {
514
- await this.assignmentSection.click();
527
+ await assignmentHeader.click({ timeout: 30000 });
515
528
  }
516
529
  await this.priorityInput.click({ timeout: 30000 });
517
530
  }
@@ -199,7 +199,10 @@ class ModelerCreatePage {
199
199
  this.formLinkingTypeDropdown = page.getByLabel('Type');
200
200
  this.formLinkTypeOptions = page.locator('#bio-properties-panel-formType');
201
201
  this.addFormJsonConfigurationInput = page.getByLabel('Form JSON configuration');
202
- this.priorityInput = page.getByRole('textbox', { name: 'priority' });
202
+ // The user-task priority field renders as `<input type="number">`, whose
203
+ // ARIA role is `spinbutton`, not `textbox`, so no `textbox` query matches
204
+ // it. Target it by id instead, as pages/SM-8.10 already does.
205
+ this.priorityInput = page.locator('#bio-properties-panel-priorityDefinitionPriority');
203
206
  this.closeButton = page.getByRole('button', { name: 'Close' });
204
207
  this.rbaEnabledDeployedDialog = page.getByRole('dialog', {
205
208
  name: 'Process successfully deployed',
@@ -345,11 +348,17 @@ class ModelerCreatePage {
345
348
  await (0, sleep_1.sleep)(20000);
346
349
  }
347
350
  async expandAssignmentSection() {
351
+ // `assignmentSection` is already the `group-assignmentDefinition` element,
352
+ // so the header must be matched relative to it — repeating the group
353
+ // selector looked for a nested group that never exists, which made the
354
+ // check always report "collapsed" and toggled an open section shut.
348
355
  const isExpanded = (await this.assignmentSection
349
- .locator('[data-group-id="group-assignmentDefinition"] .bio-properties-panel-group-header.open')
356
+ .locator('.bio-properties-panel-group-header.open')
350
357
  .count()) > 0;
351
358
  if (!isExpanded) {
352
- await this.assignmentSection.click({ timeout: 60000 });
359
+ await this.assignmentSection
360
+ .locator('.bio-properties-panel-group-header')
361
+ .click({ timeout: 60000 });
353
362
  }
354
363
  }
355
364
  async clickAssigneeInput() {
@@ -965,12 +974,7 @@ class ModelerCreatePage {
965
974
  await this.page.waitForTimeout(1000);
966
975
  }
967
976
  async clickPriorityInput() {
968
- const isExpanded = (await this.assignmentSection
969
- .locator('.bio-properties-panel-group-header empty open')
970
- .count()) > 0;
971
- if (!isExpanded) {
972
- await this.assignmentSection.click();
973
- }
977
+ await this.expandAssignmentSection();
974
978
  await this.priorityInput.click({ timeout: 30000 });
975
979
  }
976
980
  async setPriority(taskName, priority, numberOfTasks) {
@@ -127,7 +127,13 @@ class ModelerCreatePage {
127
127
  // name, so a role+name match on 'User task' is ambiguous as soon as a
128
128
  // diagram is called e.g. "Optimize Job Worker User Task Diagram".
129
129
  this.userTaskOption = page.locator('.djs-popup-results [data-id="replace-with-user-task"]');
130
- this.priorityInput = page.getByRole('textbox', { name: 'priority' });
130
+ // The user-task priority field renders as
131
+ // `<input type="number" id="bio-properties-panel-priorityDefinitionPriority">`,
132
+ // whose ARIA role is `spinbutton`, not `textbox`. A role=textbox query only
133
+ // matches it while the entry is flipped into FEEL mode (a CodeMirror
134
+ // editor), which is not a state this flow should depend on. Target the
135
+ // number input by its stable id instead.
136
+ this.priorityInput = page.locator('#bio-properties-panel-priorityDefinitionPriority');
131
137
  this.appendEndEventButton = page.getByRole('button', {
132
138
  name: 'Append end event',
133
139
  });
@@ -505,11 +511,19 @@ class ModelerCreatePage {
505
511
  await this.page.waitForTimeout(1000);
506
512
  }
507
513
  async clickPriorityInput() {
514
+ // `.bio-properties-panel-group-header empty open` is a descendant query for
515
+ // <empty><open> elements, so it always counted 0 and every call clicked the
516
+ // group container. Only the header toggles the group, so a container click
517
+ // lands on whichever entry sits at its centre once expanded — including an
518
+ // entry's `fx` FEEL toggle. Probe the header's own `open` class and click
519
+ // the header, so expanding is correct and idempotent across the loop.
508
520
  const isExpanded = (await this.assignmentSection
509
- .locator('.bio-properties-panel-group-header empty open')
521
+ .locator('.bio-properties-panel-group-header.open')
510
522
  .count()) > 0;
511
523
  if (!isExpanded) {
512
- await this.assignmentSection.click();
524
+ await this.assignmentSection
525
+ .locator('.bio-properties-panel-group-header')
526
+ .click({ timeout: 30000 });
513
527
  }
514
528
  await this.priorityInput.click({ timeout: 30000 });
515
529
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@camunda/e2e-test-suite",
3
- "version": "0.0.899",
3
+ "version": "0.0.901",
4
4
  "description": "End-to-end test helpers for Camunda 8",
5
5
  "repository": {
6
6
  "type": "git",