Async / sequentially
Steps can be asynchronous because they are executed sequentially.
But Scenario and ScenarioOutline are not asynchronous.
Depending on your needs, you can use scenario hooks.
Steps are run sequentially
Section titled “Steps are run sequentially”Since v2.0.0 vitest-cucumber uses test.each instead of test.
To follow the Gherkin convention, steps are tested one after one.
An example Scenario:
describeFeature(feature, ({ Scenario }) => { Scenario(`Run steps sequentially`, ({ Given, And, When, Then }) => { let count = 0 Given(`Count equals 0`, () => { expect(count).toBe(0) }) And(`I increase the count by 1 in a promise`, async () => { await new Promise((resolve) => { count++ resolve(null) }) }) When(`I use a timeout to increase`, async () => { await new Promise((resolve) => { setTimeout(() => { count++ resolve(null) }, 1000) }) }) Then(`At end count should be 2`, () => { expect(count).toBe(2) }) })})