I am trying to try to add some BDD tests to this repo: https://github.com/rocket-pool/rocketpool
I've created a feature file in /test/features and a new steps file in /test/support.
The feature file looks like this:
Feature: Test
Scenario: Test Deposit Below The Minimum Amount
When A Staker Tries to Deposit Below the Minimum Amount
Then The Transaction Should Revert
The steps file complains about all the imports, which look like this :
import { printTitle } from '../_utils/formatting';
They do not include the .js extension. In order to get to this point (which I had to fight with using import vs require), I had to add "type": "module" to the package.json file, my run command looks like this npx @cucumber/cucumber test/features/test.feature --import test/support/*.js
If I add the .js extension to the imports in my steps file, it will then complain about all the imports in other files in the project. I do not want to change all of them to use .js, and I would like to just be able to be able to keep the changes to a minimum. I have looked into webpack and babel, but there are several config files included in the node_modules for these packages so I am not sure which ones to modify, or even if that will help me in this case. It appears I am in commonjs/esm hell and I have very little experience with JavaScript.
Edit: Tried this:
node --experimental-specifier-resolution=node npx @cucumber/cucumber test/features/*.feature --import test/support/*.js
Now get this error
Running command: node --experimental-specifier-resolution=node npx @cucumber/cucumber test/features/.feature --import test/support/.js --name "Test Deposit Below The Minimum Amount" (node:7504) ExperimentalWarning: The Node.js specifier resolution flag is experimental. It could change or be removed at any time. (Use node --trace-warnings ... to show where the warning was created) node:internal/errors:490 ErrorCaptureStackTrace(err); ^
Error [ERR_MODULE_NOT_FOUND]: Cannot find module '/c:/Users/_/git/rocketpool/npx' imported from c:\Users_\git\rocketpool
at new NodeError (node:internal/errors:399:5) at finalizeResolution (node:internal/modules/esm/resolve:308:15) at moduleResolve (node:internal/modules/esm/resolve:945:10) at defaultResolve (node:internal/modules/esm/resolve:1153:11) at nextResolve (node:internal/modules/esm/loader:163:28) at ESMLoader.resolve (node:internal/modules/esm/loader:838:30) at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18) at ESMLoader.import (node:internal/modules/esm/loader:525:22) at node:internal/modules/run_main:58:28 at loadESM (node:internal/process/esm_loader:91:11) { code: 'ERR_MODULE_NOT_FOUND }
Node.js v18.16.0
ERROR: Command exited with status code 1.`
from Importing files without adding .js extension existing project
No comments:
Post a Comment