CodeceptJS icon indicating copy to clipboard operation
CodeceptJS copied to clipboard

in BDD or Gherkin mode, the `After` is not synchronous where next scenario starts (while the `After` is still executing)

Open nnanoob opened this issue 10 months ago • 6 comments

What are you trying to achieve?

In BDD / Gherkin mode, After to be synchronous so it run to completion before the next scenario starts

Scenario 1 After --- run completely before Scenario 2 start Scenario 2

What do you get instead?

After is asynchronous so it might still running while the next scenario already starting It seems that the After implementation is based on event which is independent from the promise chain.

Details

  • CodeceptJS version: 3.5.13
  • NodeJS Version: v18.19.0
  • Operating System: macOS
  • webdriverio 8.32.0

nnanoob avatar Apr 04 '24 13:04 nnanoob

this is closely related to this https://github.com/codeceptjs/CodeceptJS/issues/3870 but in this case, we are on After where we requires teardown of certain UI steps (which means we need to use the I and the approach of recorder doesn't work for us) before proceeding to next scenario

nnanoob avatar Apr 04 '24 14:04 nnanoob

Agreed… this is really troubling a lot especially handling the after test events in the UI. Would be great if @kobenguyent you can fix this. I believe there was a similar issue with WebdriverIO and they fixed it.

myrepojuly1987 avatar Apr 04 '24 14:04 myrepojuly1987

@DavertMik would you be able to help us with this issue? Pls let us of you need more info…

myrepojuly1987 avatar Apr 05 '24 17:04 myrepojuly1987

It seems that the After implementation is based on event which is independent from the promise chain.

@nnanoob @myrepojuly1987

sorry, I don't think I can provide a quick fix on this

maybe you could use recorder to synchonize actions inside it?

After(() => {
recorder.add(() => {
   // my actions
  })
})

If you have better suggestion, please send a PR

DavertMik avatar Apr 12 '24 21:04 DavertMik

@DavertMik Adding the actions to the recorder does not work and it just hangs. Sure, will check for better suggestions.

myrepojuly1987 avatar Apr 13 '24 03:04 myrepojuly1987

This issue is stale because it has been open for 90 days with no activity.

github-actions[bot] avatar Jul 13 '24 02:07 github-actions[bot]