diff --git a/CHANGELOG.md b/CHANGELOG.md index 69efa0b1..0e4d3496 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,8 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/) and this project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] +### Removed +- BREAKING CHANGE: Remove synthetic step for empty pickles ([#125](https://github.com/cucumber/fake-cucumber/pull/125)) ## [16.5.0] - 2024-08-01 ### Added diff --git a/features/empty.feature b/features/empty.feature new file mode 100644 index 00000000..3d6a1dca --- /dev/null +++ b/features/empty.feature @@ -0,0 +1,2 @@ +Feature: Empty feature + Scenario: Empty scenario \ No newline at end of file diff --git a/src/EmptyPickleTestStep.ts b/src/EmptyPickleTestStep.ts deleted file mode 100644 index eacadcbc..00000000 --- a/src/EmptyPickleTestStep.ts +++ /dev/null @@ -1,11 +0,0 @@ -import * as messages from '@cucumber/messages' - -import TestStep from './TestStep' - -export default class EmptyPickleTestStep extends TestStep { - public toMessage(): messages.TestStep { - return { - id: this.id, - } - } -} diff --git a/src/makeTestCase.ts b/src/makeTestCase.ts index ab890f9b..d1fc46f5 100644 --- a/src/makeTestCase.ts +++ b/src/makeTestCase.ts @@ -1,7 +1,6 @@ import { Query } from '@cucumber/gherkin-utils' import * as messages from '@cucumber/messages' -import EmptyPickleTestStep from './EmptyPickleTestStep' import { MakeErrorMessage } from './ErrorMessageGenerator' import IClock from './IClock' import IStopwatch from './IStopwatch' @@ -27,21 +26,6 @@ export default function makeTestCase( makePickleTestStep: MakePickleTestStep, makeHookStep: MakeHookTestStep ): TestCase { - if (pickle.steps.length === 0) { - const id = newId() - const undefinedStep = new EmptyPickleTestStep( - id, - undefined, - true, - [], - [], - clock, - stopwatch, - makeErrorMessage - ) - return new TestCase(newId(), [undefinedStep], pickle.id, clock) - } - const beforeHookSteps = makeHookSteps( pickle, beforeHooks, diff --git a/test/makeTestCaseTest.ts b/test/makeTestCaseTest.ts index b9198fd1..1c3090c4 100644 --- a/test/makeTestCaseTest.ts +++ b/test/makeTestCaseTest.ts @@ -41,7 +41,7 @@ describe('makeTestCase', () => { }) context('when the pickle has no steps', () => { - it('generates a synthetic undefined test step', async () => { + it('generates an empty test case', async () => { // See https://github.com/cucumber/cucumber/issues/249 const pickle: messages.Pickle = { id: 'some-id', @@ -69,8 +69,14 @@ describe('makeTestCase', () => { const messageList: messages.Envelope[] = [] const listener: EnvelopeListener = (message: messages.Envelope) => messageList.push(message) - await testCase.execute(listener, 0, false, 'some-test-case-started-id') - assert.strictEqual(messageList.length, 4) + const status = await testCase.execute( + listener, + 0, + false, + 'some-test-case-started-id' + ) + assert.strictEqual(status, messages.TestStepResultStatus.UNKNOWN) + assert.strictEqual(messageList.length, 2) }) })