Skip to content

Healer priorities and steps are not respected #4347

Closed
@lewimuchiri

Description

@lewimuchiri

I have two healers defined as follows:

heal.addRecipe('clickAndType', {
  priority: 1,
  steps: [
    'fillField',
    'appendField',
  ],
  fn: async ({ step }) => {
    const locator = step.args[0];
    const text = step.args[1];

    return ({ I }) => {
      console.log("HEALING THE FILL_FIELD FUNCTION " + locator);

      I.click(locator);
      I.wait(1); // to open modal or something
      I.type(text);
    };
  },
});

heal.addRecipe("waitForVisibleThenClick", {
  priority: 1,
  steps: [
    "click"
  ],
  fn: async ({ step }) => {
    const locator = step.args[0];

    return ({ I }) => {
      console.log("HEALING THE CLICK FUNCTION " + locator);

      I.waitForVisible(locator, 8);
      I.click(locator);
    };
  },
});

And then I have a failing step I.click('#mat-mdc-checkbox-1-input');
When I run my tests, I've noticed that the clickAndType recipe is being called instead of the waitForVisibleThenClick recipe yet clickAndType recipe has not been defined for the click step. Same thing happens even when I change the priorities such that waitForVisibleThenClick has a higher priority. Also, when I comment-out the clickAndType recipe, now the waitForVisibleThenClick is called, which indicates that it was formerly not being called because clickAndType was being called.
Any hints?

Details

  • CodeceptJS version: 3.6.2
  • NodeJS Version: 20.12.2
  • Operating System: Windows 11
  • Playwright Helper

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions