From 40ba07d97eaec9875b2060227e7952047a08f0c7 Mon Sep 17 00:00:00 2001 From: aurelien-reeves Date: Fri, 10 Dec 2021 09:27:19 +0100 Subject: [PATCH 1/5] Add package.json to node module exports --- package.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index d7f52ca2c..54ae39f10 100644 --- a/package.json +++ b/package.json @@ -175,7 +175,8 @@ }, "./lib/*": { "require": "./lib/*.js" - } + }, + "./package.json": "./package.json" }, "types": "./lib/index.d.ts", "engines": { From 8f44b815d78ed9fb437ad4262255031169f7fd04 Mon Sep 17 00:00:00 2001 From: aurelien-reeves Date: Mon, 13 Dec 2021 10:30:00 +0100 Subject: [PATCH 2/5] Update changelog --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 669bf5bec..a91c17240 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,9 @@ Please see [CONTRIBUTING.md](https://github.com/cucumber/cucumber/blob/master/CO ## [Unreleased] ### Fixed +- Add `package.json` to node module `exports` + ([PR#1870](https://github.com/cucumber/cucumber-js/pull/1870) + [Issue#1869](https://github.com/cucumber/cucumber-js/issues/1869)) - Allows for parentheses in paths for developers working on cucumber's own code ([[#1735](https://github.com/cucumber/cucumber-js/issues/1735)]) - Smoother onboarding for Windows developers ([#1863](https://github.com/cucumber/cucumber-js/pull/1863)) From e602414dc441187971e96c2f3e6f488ef831bd7c Mon Sep 17 00:00:00 2001 From: aurelien-reeves Date: Mon, 13 Dec 2021 11:04:05 +0100 Subject: [PATCH 3/5] Add a scenario to validate we can export package.json and version numbers --- features/direct_imports.feature | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/features/direct_imports.feature b/features/direct_imports.feature index a9ebd7250..43b0b909c 100644 --- a/features/direct_imports.feature +++ b/features/direct_imports.feature @@ -60,4 +60,26 @@ Feature: Core feature elements execution using direct imports Given(/^a step passes$/, function() {}); """ When I run cucumber-js - Then it passes \ No newline at end of file + Then it passes + + Scenario: we can import the version number from package.json and from the library + Given a file named "features/a.feature" with: + """ + Feature: some feature + Scenario: some scenario + Given a step checks the version number + """ + And a file named "features/step_definitions/cucumber_steps.js" with: + """ + const {Given} = require('@cucumber/cucumber') + const package_version = require('@cucumber/cucumber/package.json').version + const library_version = require('@cucumber/cucumber').version + + Given(/^a step checks the version number$/, function() { + if (package_version !== library_version) { + throw new Error('package version: ' + package_version + ' !== library version: ' + library_version) + } + }); + """ + When I run cucumber-js + Then it passes From 29f3b69c37c68307ec6dea719c2e78051afcf0ae Mon Sep 17 00:00:00 2001 From: aurelien-reeves Date: Mon, 13 Dec 2021 11:06:29 +0100 Subject: [PATCH 4/5] Use template literal rather than string concatenation in direct_imports.feature --- features/direct_imports.feature | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/features/direct_imports.feature b/features/direct_imports.feature index 43b0b909c..1bebbb903 100644 --- a/features/direct_imports.feature +++ b/features/direct_imports.feature @@ -77,7 +77,7 @@ Feature: Core feature elements execution using direct imports Given(/^a step checks the version number$/, function() { if (package_version !== library_version) { - throw new Error('package version: ' + package_version + ' !== library version: ' + library_version) + throw new Error(`package version: ${package_version} !== library version: ${library_version}`) } }); """ From 7c5c016e129ea34d0c9332ab4be1c0b9b2475269 Mon Sep 17 00:00:00 2001 From: aurelien-reeves Date: Mon, 13 Dec 2021 15:07:06 +0100 Subject: [PATCH 5/5] Change entry in the changelog --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d3d15f95..71edc581c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,7 @@ Please see [CONTRIBUTING.md](https://github.com/cucumber/cucumber/blob/master/CO ## [Unreleased] ### Fixed -- Add `package.json` to node module `exports` +- Ensure package.json can be imported by consuming projects ([PR#1870](https://github.com/cucumber/cucumber-js/pull/1870) [Issue#1869](https://github.com/cucumber/cucumber-js/issues/1869)) - Allows for parentheses in paths for developers working on cucumber's own code ([[#1735](https://github.com/cucumber/cucumber-js/issues/1735)])