codeceptjs / CodeceptJS

Supercharged End 2 End Testing Framework for NodeJS

Home Page:http://codecept.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

nnanoob opened this issue · 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

this is closely related to this #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

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.

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

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 Adding the actions to the recorder does not work and it just hangs. Sure, will check for better suggestions.