-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cucumber's own features fail when parent directory contains parentheses #1735
Comments
I added some debugging in It looks like the
Notice that the parens have been stripped from the path in the |
I think I've tracked the problem down to this line:
Where we lean on the |
Maybe the problem is here?! |
I think I've found the root cause. I think it's in the stacktrace.js library's I cloned that library and wrote a failing test for it that reproduces the problem, in a branch which you can see here. I've made an issue on their issue tracker, so we can continue the discussion over there if you're interested in helping to fix it @eoola? stacktracejs/error-stack-parser#62 |
I think I’ve found another root cause. We’re depending on a micro library that has low activity and release frequency. Depending on low-frequency libraries is a liability. We should replace it with our own implementation, possibly a function instead of a lib. |
I thought about this too @aslakhellesoy. Having looked through the code of that library, there's quite a bit of complexity there to deal with handling call stacks in different browsers. So that's the only trade-off with bringing that functionality in-house - Cucumber-JS might not report filename so reliably if run in a browser. That seems like an edge-case to me, but that's because I only ever use Cucumber-JS in a node/electron process. I'm not sure how much people are running their tests in browsers. |
We don’t need to worry about running in a browser because we removed support for that in 7.0.0. |
Good, then I think that settles it, we should rip out stacktrace.js as it's way more than we need. As you say, we can probably roll our own function using |
Would love to take that on. Thank you! @mattwynne |
Here are some things we might be able to lean on: https://www.npmjs.com/package/v8-callsites It's currently unclear to me how much of this stuff is now available inside NodeJS itself. I see we're using the My node knowledge isn't deep enough to have a handle on this. |
OK @eoola this is ready for you. I've done a bit of "prefactoring" on the current code to make it easier to unit test, and added a unit test for it that helps us to pin-point the problem. The code is in the I'm sorry I don't have time to leave you guidance about how to check out that branch locally - I need to go out now, but I can update this ticket later on with that info. Once you've checked out that branch locally, you can run the test like this:
If you've got your cucumber-js repo in a parent path without parentheses, that unit test should pass fine. If you run it in a path with parentheses however, it should fail like this:
Now for the fix! I believe that we can simply replace the call to Once you've done that, you can remove the dependency on Then we'll be ready for your first PR to cucumber-js! 🎉 |
@eoola, @testerfromleic and I mobbed on this today (video) in the new contributors ensemble. We discovered that the We had a go at parsing the stack frame strings ourselves, and we got close to having something working. I'm not sure whether it will work in all environments, like Windows for example. We might want to try something like https://stackoverflow.com/questions/13227489/how-can-one-get-the-file-path-of-the-caller-function-in-node-js which seems to use native Node/v8 APIs to get the array of |
I went down the rabbit hole a little further on the idea of using https://github.com/HoldYourWaffle/ts-call-site seems like it might do the trick. |
@eoola @davidjgoss and I did some more work on this today: https://www.twitch.tv/videos/1144571453 We tried using |
I made a minimal reproducible example: https://github.com/mattwynne/stacktrace-test |
I've sent the minimal reproducible example to the ts-node folks: TypeStrong/ts-node#1517 |
We've had a breakthrough! TypeStrong/ts-node#1517 mattwynne/stacktrace-test@e6260e2 |
- progress towards fixing bug for paths with parentheses Cucumber's own features fail when parent directory contains parentheses cucumber#1735 - gets accurate line numbers for Error stacks in typescript Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Matt Wynne <matt@mattwynne.net>
We've made a draft PR, even though there are still one or two tests failing. We're getting there, and we've removed one of our dependencies (stracktrace-js). |
…WIP (#1824) * Extract functions into their own files * Allow injection of exclusion filter to make easier to test * Make sure we always exclude ourselves * Add unit test for getDefinitionLineAndUri * -adds regex pattern for stack traces -removes dependencies for StackFram library * - adds "source-map-support" dependency - progress towards fixing bug for paths with parentheses Cucumber's own features fail when parent directory contains parentheses #1735 - gets accurate line numbers for Error stacks in typescript Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Matt Wynne <matt@mattwynne.net> * update cspotcode/source-map-support * remove .DS_Store * updates unit test to support paths on windows Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> * Removes assertion for a failing test that's no longer needed Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> * Removes exception for the custom stack trace feature Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> * Updates changelog Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> * fixed linting for previous commit Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Matt Wynne <matt@mattwynne.net> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com>
Although this closed when we closed the PR, we spotted another problem on Demi's machine with this scenario which also seems to get messed up by parentheses (or maybe spaces? or both?) in the developer's path. We'll make a separate issue about this. |
Issue for the other failing test is #1845 |
* Cleaning up feature file * Cleaning up feature file * Use new messages without protobuf dependencies, and Markdown support. (cucumber#1645) * Start refactoring the code to use the new messages from the json-schema branch. To use those messages, first `npm link` every @cucumber/* module we depend on in the monorepo. Then, `npm link [all the modules]` from this repo. * Everything compiles * Fix import of messages module * Fix import of messages in coordinator * Update predictableTimestamp to work with new messages * Fix tests related to capture groups * Fix some more tests * Fix another spec * All unit tests passing * cck fixes * Make more scenarios pass * Fix import * Export Status * All features passing * npm test is now passing * Update @cucumber dependencies * Add support for Markdown * update yarn lockfile * Fix npm dependencies * Use .feature.md extension. Update dependencies. Co-authored-by: aurelien-reeves <aurelien.reeves@smartbear.com> Co-authored-by: davidgoss <david@davidgoss.co> * Update @cucumber/* dependencies (cucumber#1671) * Bump @cucumber/html-formatter * cli: have gherkin emit uris relative to the cwd (cucumber#1672) * pass relativeTo to gherkin-streams * fix json formatter * remove more usages of relative * another one * another one * last one * lint * fix this test * fix this test * add changelog Co-authored-by: Aslak Hellesøy <1000+aslakhellesoy@users.noreply.github.com> * Revert "cli: have gherkin emit uris relative to the cwd (cucumber#1672)" This reverts commit 5a21c22. * cli: relative path fix again, now with windows (cucumber#1673) * generate html report on runs * reinstate original change This reverts commit 8a54a1b. * update test * fix pickle filter for windows * debt: add retry for publish tests (cucumber#1674) * add tag to feature * retry config for feature-test run * chore(deps): update dependency @types/bluebird to v3.5.35 (cucumber#1676) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/lodash to v4.14.170 (cucumber#1678) Co-authored-by: Renovate Bot <bot@renovateapp.com> * format: report total steps correctly in progress bar (cucumber#1669) * make cck fail: remove reordering of testCase messages * add new function to deal with testCase * dont emit testCase from PickleRunner * include in result * fix up some tests * move tests to right places * emit test cases from serial runtime * scrappy impl to get serial working * remove unused field * refactor structures, fix tests * make coordinator api more promisey * start to hook up parallel * assemble test cases without ITestStep * remove unused function * TestCase is source of truth * TestCaseRunner is more accurate than PickleRunner? * make parallel runtime work with this * add explanatory comment * fix progress bar formatter counts * changelog * remove temp tag Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> * clarify changelog entry audience * cleanup Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> * chore(deps): update dependency @types/node to v14.17.1 (cucumber#1680) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/express to v4.17.12 (cucumber#1677) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/semver to v7.3.6 (cucumber#1679) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update unit test packages (cucumber#1684) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency typescript to v4.3.2 (cucumber#1682) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency sinon to v11 (cucumber#1686) Co-authored-by: Renovate Bot <bot@renovateapp.com> * Publish reports to https://reports.cucumber.io * Revert "Publish reports to https://reports.cucumber.io" This reverts commit 85b0f1a. * docs: more clarification on setDefaultTimeout * docs: mention that coord process.env copies to workers (cucumber#1693) Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> * docs: call out change of after hook result in migration guide (cucumber#1692) * document change of after hook result * better wording * whoops * Update docs/migration.md Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> * Empty rerun file exits running no scenarios (cucumber#1302) (cucumber#1568) Co-authored-by: Aslak Hellesøy <1000+aslakhellesoy@users.noreply.github.com> Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> Co-authored-by: David Goss <david@davidgoss.co> * chore(deps): update eslint packages (cucumber#1683) * chore(deps): update eslint packages * autofix prettier Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: Charles Rudolph <charles.w.rudolph@gmail.com> * Update migration guide links (cucumber#1694) * typescript: type this as IWorld in user functions (cucumber#1690) * type this as any in user fns, add test * update changelog * setWorldConstructor for completeness * use generics to do it right * Update CHANGELOG.md * use a clearer generic type name * Pass --tags correctly, remove duplication * Revert "Pass --tags correctly, remove duplication" This reverts commit dbcb177. * debt: add things to main entry point that people need (cucumber#1697) * ensure hook parameters are exported * dont need to mark this arg as possibly undefined * export runtime options * expose formatter options * build: only audit production dependencies * chore: remove redundant profile config * Release 7.3.0 * 7.3.0 * refactor documentation (part 1) (cucumber#1699) * add export of cli --help * dont need note about sync * update world docs * document retry * document profiles * start to trim stuff from cli * more on profiles * document parallel * add linsk to readmr * Fixed reports banner to point to https://cucumber.io/docs/cucumber/environment-variables/ (cucumber#1703) * Add more arrow function warnings (cucumber#1705) * Add more arrow function warnings * Update links * fix(cli): allow targetting same file multiple times (cucumber#1708) * fix(cli): allow targetting same file multiple times * Add example to "run multiple scenarios" scenario outline * Update CHANGELOG.md * Deduplicate deduplicate message Co-authored-by: David Goss <david@davidgoss.co> * update supported node versions (cucumber#1704) * update supported node versions * fix changelog * update package json Co-authored-by: David Goss <david@davidgoss.co> * chore(deps): update dependency ts-node to v10 (cucumber#1687) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency fs-extra to v10 (cucumber#1685) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency tsd to v0.17.0 (cucumber#1681) * chore(deps): update dependency tsd to v0.17.0 * Add @tsd/typescript to dependency-lint ignore list Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: aurelien-reeves <aurelien.reeves@smartbear.com> * cli: remove deprecated retryTagFilter option (cucumber#1713) * remove retryTagFilter camelCased option * add changelog entry * [WIP] remove lodash (cucumber#1709) * remove lodash wip * compiles * most unit tests + lint * passing unit tests * fix features * fix feature tests Co-authored-by: David Goss <david@davidgoss.co> Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> * fix(deps): update dependency commander to v8 (cucumber#1720) * fix(deps): update dependency commander to v8 * Fix commander upgrade issue Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: aurelien-reeves <aurelien.reeves@smartbear.com> * chore(deps): update dependency @types/node to v14.17.4 (cucumber#1715) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency typescript to v4.3.5 (cucumber#1716) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency mocha to v9 (cucumber#1719) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/chai to v4.2.19 (cucumber#1714) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update eslint packages (cucumber#1718) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update cucumber packages (cucumber#1717) Co-authored-by: Renovate Bot <bot@renovateapp.com> * docs: fix node version mentioned in example * Fix import in docs * expose promise timeout helper (cucumber#1566) * Update CONTRIBUTING.md * Update CONTRIBUTING.md * IParameterTypeDefinition fix (cucumber#1733) Co-authored-by: Ludek Novy <ludeknovy@fastmail.com> * bringing back v6/5 props (cucumber#1732) * bringing back v6/5 props * changelog update * Update CHANGELOG.md Co-authored-by: David Goss <david@davidgoss.co> Co-authored-by: Ludek Novy <ludeknovy@fastmail.com> Co-authored-by: David Goss <david@davidgoss.co> * remove support for generators (cucumber#1725) * Explain how to use yarn to list commands (cucumber#1730) Co-authored-by: Matt Wynne <matt@mattwynne.net> * Add a 'reindent' test helper (cucumber#1722) * Upgrade dependencies (cucumber#1736) * (deps) update dependency lint (cucumber#1726) * chore: update changelog on main * add release step to edit+publish gh release * Bump reindent-template-literals to 1.1.0 (cucumber#1742) * chore(deps): update dependency @types/express to v4.17.13 (cucumber#1744) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): pin dependency reindent-template-literals to 1.1.0 (cucumber#1743) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/glob to v7.1.4 (cucumber#1746) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/mustache to v4.1.2 (cucumber#1747) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/fs-extra to v9.0.12 (cucumber#1745) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/node to v14.17.6 (cucumber#1749) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/mz to v2.7.4 (cucumber#1748) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/progress to v2.0.4 (cucumber#1750) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/resolve to v1.20.1 (cucumber#1751) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/node to v14.17.7 (cucumber#1757) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/semver to v7.3.8 (cucumber#1752) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/stream-buffers to v3.0.4 (cucumber#1753) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/tmp to v0.2.1 (cucumber#1754) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update eslint packages (cucumber#1756) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/verror to v1.10.5 (cucumber#1755) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update unit test packages (cucumber#1758) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency ts-node to v10.1.0 (cucumber#1760) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/mocha to v9 (cucumber#1761) Co-authored-by: Renovate Bot <bot@renovateapp.com> * Make parameter type generic for value checker (cucumber#1764) * Add retro notes from new contributors ensemble (cucumber#1765) * Add retro folder and notes from last Friday * Add retro doc from the previous new-contributors session * Add some more actions from previous retro * Add pointer to retro-tools * Use youtube link for stream which is permanent * Move retro stuff into docs folder * Fix link to issue * Tweak CONTRIBUTING guide to be more beginner-friendly (cucumber#1767) As mentioned in the new contributors ensemble retro[1] [1]: https://github.com/cucumber/cucumber-js/blob/main/docs/retro/2021/07/17.md#what-should-we-decide--change-for-next-time * docs: minor fixes for the styling consistency (cucumber#1769) * Yarn to npm (cucumber#1774) * Change yarn to npm Co-authored-by: Matt Wynne <matt@cucumber.io> * Changed the contributing guide use to npm Co-authored-by: Matt Wynne <matt@cucumber.io> * fixed the autoformat from vscode * updated the build.yml to now work npm commands * fixed the update-dependencies * try using npm 7 with all node versions Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: David Goss <david@davidgoss.co> * Use typescript incremental build to speed up compilation (cucumber#1766) Co-authored-by: David Goss <david@davidgoss.co> * chore(deps): update dependency @types/node to v14.17.12 (cucumber#1778) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/progress to v2.0.5 (cucumber#1779) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency mocha to v9.1.1 (cucumber#1780) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency ts-node to v10.2.1 (cucumber#1781) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency typescript to v4.4.2 (cucumber#1782) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/node to v14.17.14 (cucumber#1785) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update eslint packages (cucumber#1787) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update eslint packages (cucumber#1786) * chore(deps): update eslint packages * Fix linting errors Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: aurelien-reeves <aurelien.reeves@smartbear.com> * Deactivate renovate dependency dashboard As discussed at our last community meeting, we do not want those dashboards. * chore: update @cucumber/* dependencies, fix willBeRetried usage (cucumber#1776) * latest dependencies * make it just about compile * fix test case runner * fix summary helper * fix formatters (ish) * fix last bit in formatters * update fixtures for feature tests * fix attachments cck * hook up retry cck * lint * update doc * update lockfile * Add configuration cli option (cucumber#1794) * Config file Option update * Add --config option in the argv parser * Add a scenario in profiles.feature * Add unit tests and refactorize profile_loader * Consider the new --config option when loading profiles * Add some documentation * Add an entry in the changelog Co-authored-by: deepziem <54252717+deepziem@users.noreply.github.com> * feat: add pickleStep to step hook function arg (cucumber#1775) * add to interface * implement * update api ref * update changelgo * add test * Increase precision of test case duration measurements. (cucumber#1793) * fix(formatter): Enable calling parseTestCaseAttempt on test cases that haven't completed (cucumber#1531) * fix(formatter): Enable calling parseTestCaseAttempt on test cases that haven't completed yet * Instanciate a proper TestStepResult when parsing TestCaseAttempt * Add unit tests * Refactor testCaseAttemptParser unit tests Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> Co-authored-by: Aslak Hellesøy <1000+aslakhellesoy@users.noreply.github.com> * add ESM support (take 2) (cucumber#1649) * Revert "temporarily revert ESM change (cucumber#1647)" This reverts commit 084c1f2. * add failing scenario for deep imports * define entry point with dot * make deep imports work via export patterns * move doc to own file * link to doc from readme * add changelog entry * add example to doc * remove confusing comment * remove cli option, use import by default * update documentation * remove redundant describe * fix ordering * Update features/esm.feature Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> * Update features/esm.feature Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> * simplify tagging * use import only if a javascript file * add note about no transpilers * inline to avoid confusing reassignment * whoops, re-add try/catch * use require with transpilers; import otherwise * remove pointless return * support .cjs config file * type and import the importer * actually dont import - causes issues Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> * docs: add rule to keywords for i18n command (cucumber#1800) * add rule to keywords for i18n command * Fix i18n example Co-authored-by: aurelien-reeves <aurelien.reeves@smartbear.com> * set correct version * debt: remove --predictable-ids option (cucumber#1801) * WIP * fix up testing * add changelog entry * chore(deps): update dependency @types/fs-extra to v9.0.13 (cucumber#1803) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/node to v14.17.20 (cucumber#1804) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency typescript to v4.4.3 (cucumber#1805) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @sinonjs/fake-timers to v8 (cucumber#1810) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update eslint packages (cucumber#1809) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency coffeescript to v2.6.0 (cucumber#1808) Co-authored-by: Renovate Bot <bot@renovateapp.com> * fix(deps): update cucumber packages (cucumber#1807) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update unit test packages (cucumber#1806) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update cucumber packages (major) (cucumber#1791) * chore(deps): update cucumber packages * Implement new CCK tests from CCK 8.0.0 * Bump compatibility-kit to v9.0.0 Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: aurelien-reeves <aurelien.reeves@smartbear.com> * fix(deps): update cucumber packages (major) (cucumber#1811) * chore(deps): update cucumber packages * Implement new CCK tests from CCK 8.0.0 * Bump compatibility-kit to v9.0.0 * fix(deps): update cucumber packages * Fix requires of cucumber-expressions GeneratedExpression class Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: aurelien-reeves <aurelien.reeves@smartbear.com> * Fix link to 7.3.1 * support: re-add setDefinitionFunctionWrapper (minus generator step logic) (cucumber#1795) * Revert "remove support for generators (cucumber#1725)" This reverts commit a2dcce6. * Remove bluebird and related dependencies * Remove support for generator functions * Update mocha config * Add forbid-pending to mocharc too * Update migration and api_reference documents * Update changelog * Update CHANGELOG entry * Fix dependency audit issue * List formatters in help command (cucumber#1798) * feature/list-formatters-in-help-command adding documentation field to Formatter class * feature/list-formatters-in-help-command refactoring getConstructorByType method to hold a Record<string, typeof Formatter> * feature/list-formatters-in-help-command improving return statement to deal with cases where the default formatter should be returned * feature/list-formatters-in-help-command after running lint fix * feature/list-formatters-in-help-command fixing ternary so logic does not invoke load customFormatter * feature/list-formatters-in-help-command creating class that will hold the description of the formatters * feature/list-formatters-in-help-command adding logic to extract the correct documentation for each formatter and altering the IFormatter type to have this field * feature/list-formatters-in-help-command reverting changes made by adding the documentation field to the formatter object * feature/list-formatters-in-help-command adding documentation field to html formatter * feature/list-formatters-in-help-command adding documentation member to json/message/progress/rerun/summary/usage formatters * feature/list-formatters-in-help-command removing formatterDocumentationHelper class as it is no longer needed * feature/list-formatters-in-help-command adding documentation field to rerun formatter * feature/list-formatters-in-help-command fixing return type of getConstructorByType method and running linter * feature/list-formatters-in-help-command removing unnecessary await * feature/list-formatters-in-help-command creating Formatters class to hold different formatters and extracting them from the builder class * feature/list-formatters-in-help-command adding documentation field to progress-bar/snippets/usage-json formatters * feature/list-formatters-in-help-command added method in formatters class to help build the documentation string * feature/list-formatters-in-help-command used recently added method to list all available formatters * feature/list-formatters-in-help-command adding documentation to snippets/progress-bar/usage-json formatters * feature/list-formatters-in-help-command adding new line to format option so that formatters will appear on new line * feature/list/formatters-in-help-command converting documentation field inside formatter to be public and static. Refactoring buildFormatterDocumentationString * feature/list/formatters-in-help-command indenting formatters and removing extra space * feature/list-formatters-in-help-command refactoring building the documentation string * feature/list-formatters-in-help-command adding feature to changelog * (docs,snippets): redo formatter docs, new loading strategy for snippet syntaxes (cucumber#1812) * start the formatters doc * document summary formatter * document progress formatter * progress bar * regenerate gifs * clutching at straws here * optimise gifs * edit out the summary failure one for mpw * describe unhappy path for summary * html formatter doco * usage and usage-json doco * replace html formatter screenshot * try again? * update git attrs * wip snippets doco * readd png * better version of html screenshot * better again * document message and json formatters * fix messages link * more info on snippets * finish up snippets * rerun docs * finish up * load snippet syntax in same way as formatters * clarify what the options are * tweak rerun docs * differentiate retry vs rerun in docs * simplify readme * add changelog * make promise interface return a promise * add example output for snippet interfaces * runtime: don't fail the test run for undefined/ambiguous when in dry run (cucumber#1814) * update scenario (failing) * clarify * change logic * refactor to share logic across serial+parallel * add changelog * add doco for dry run * add link to changelog entry * Fix github diff link to use main instead of master * Delete .whitesource We have renovate.json * Upgrade dependencies 20211018 (cucumber#1820) * Update @cucumber dependencies * Update mocha,ts-node,typescript * fall back to require where file doesnt have a native js extension (cucumber#1819) Co-authored-by: Aslak Hellesøy <1000+aslakhellesoy@users.noreply.github.com> * Add Release workflow - see https://github.com/cucumber/.github/blob/main/RELEASING.md * Add missing changelog and contributor entries * Add missing comma * Format changelog (cucumber#1821) * Format changelog * Fix links * Fix release workflow * Update release process, use .yaml extension for workflows * Release 8.0.0-rc.1 * Refactor build helpers (cucumber#1826) * Extract functions into their own files * Allow injection of exclusion filter to make easier to test * Make sure we always exclude ourselves * chore(deps): pin dependencies (cucumber#1827) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): pin dependencies (cucumber#1828) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): pin dependency mocha to 9.1.3 (cucumber#1829) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/node to v14.17.32 (cucumber#1830) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/semver to v7.3.9 (cucumber#1831) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/tmp to v0.2.2 (cucumber#1832) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency coffeescript to v2.6.1 (cucumber#1833) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @cucumber/compatibility-kit to v9.1.2 (cucumber#1834) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency ts-node to v10.4.0 (cucumber#1836) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/glob to v7.2.0 (cucumber#1835) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency tsd to v0.18.0 (cucumber#1837) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update eslint packages (cucumber#1838) Co-authored-by: Renovate Bot <bot@renovateapp.com> * Ignore OS X files * chore(deps): update dependency @types/node to v16 (cucumber#1839) * Factor out instructions about dependency upgrades into central file * Update RELEASING.md * Fix-1735 Parentheses in developers' paths break cucumber's own tests WIP (cucumber#1824) * Extract functions into their own files * Allow injection of exclusion filter to make easier to test * Make sure we always exclude ourselves * Add unit test for getDefinitionLineAndUri * -adds regex pattern for stack traces -removes dependencies for StackFram library * - adds "source-map-support" dependency - progress towards fixing bug for paths with parentheses Cucumber's own features fail when parent directory contains parentheses cucumber#1735 - gets accurate line numbers for Error stacks in typescript Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Matt Wynne <matt@mattwynne.net> * update cspotcode/source-map-support * remove .DS_Store * updates unit test to support paths on windows Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> * Removes assertion for a failing test that's no longer needed Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> * Removes exception for the custom stack trace feature Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> * Updates changelog Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> * fixed linting for previous commit Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Matt Wynne <matt@mattwynne.net> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> * chore(deps): update dependency @types/node to v16.11.11 (cucumber#1854) Co-authored-by: Renovate Bot <bot@renovateapp.com> * fix(deps): update dependency @cucumber/create-meta to v6.0.4 (cucumber#1856) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update eslint packages (cucumber#1855) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency tsd to v0.19.0 (cucumber#1857) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency eslint-plugin-promise to v5.2.0 (cucumber#1861) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update unit test packages (cucumber#1860) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update unit test packages (cucumber#1859) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency typescript to v4.5.2 (cucumber#1858) Co-authored-by: Renovate Bot <bot@renovateapp.com> * Update esm.md (cucumber#1862) Move the chapter about configuration file at the top of the doc to give it more visibility * Smoother onboarding for Windows developers (cucumber#1863) * Add a warning for Windows developers The tests won't work if you don't have "Developer Mode" enabled. See cucumber#1852 Co-authored-by: Aurelien Reeves <aurelien.reeves@smartbear.com> * Explain about Developer Mode in contributing guide * Use cross-platform command for copying files * Update changelog * No need to npx in a node script Co-authored-by: Aurelien Reeves <aurelien.reeves@smartbear.com> * api: add runCucumber function internally (cucumber#1849) * Export version number of cucumber-js (cucumber#1866) * Export version number of cucumber-js * Update CHANGELOG.md * Add package.json to node module exports (cucumber#1870) * Add package.json to node module exports * Update changelog * Add a scenario to validate we can export package.json and version numbers * Use template literal rather than string concatenation in direct_imports.feature * Change entry in the changelog * handle spaces in the absolute path (cucumber#1845) (cucumber#1847) * put quotes around the absolute path (cucumber#1845) added quotes to wrap the path to summary.txt to ensure that paths containing spaces are read properly Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> * fix indentations in feature file * fixed the bug but needs unit testing * fixed linting * adds unit testing for handling paths with quotes * adds the fix to option splitter files * updated changelog and removed wip tag Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> Co-authored-by: Aslak Hellesøy <1000+aslakhellesoy@users.noreply.github.com> * Update contributing guide * chore: use new ci-environment package instead of create-meta (cucumber#1868) * install lib * WIP * bump other cucumber deps * finish impl * add changelog * redundant comment * update library, simplify mapping * simplify again * update changelog * build: add build artifact for reports * Replace 1 instance of regex with cucumber expression (cucumber#1872) * Replace regex with cucumber expression. We decided to split the step definition into two. So that the patterns used be simpler. Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Dane Parchment Jr <dparchmentjr@gmail.com> * Fix linting issues Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Dane Parchment Jr <dparchmentjr@gmail.com> Co-authored-by: aurelien-reeves <aurelien.reeves@smartbear.com> * Replace 2 instances of regex with cucumber expression (cucumber#1873) * Replace 2 instance of regex with cucumber expression * Fixing linting issues * Optimizing const string * Making Prettier: from " to ' * chore(deps): pin dependencies (cucumber#1874) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/tmp to v0.2.3 (cucumber#1876) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency express to v4.17.2 (cucumber#1877) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/node to v16.11.17 (cucumber#1875) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency tsd to v0.19.1 (cucumber#1879) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency prettier to v2.5.1 (cucumber#1878) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency typescript to v4.5.4 (cucumber#1880) Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: David Goss <david@davidgoss.co> * fix(deps): update dependency @cucumber/ci-environment to v8.0.1 (cucumber#1881) Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: David Goss <david@davidgoss.co> * chore(deps): update unit test packages (cucumber#1882) Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: David Goss <david@davidgoss.co> * chore(deps): update eslint packages (major) (cucumber#1840) * chore(deps): update eslint packages * Update eslint configuration - remove plugins which prevent upgrading eslint - update the configuration based on the one from cucumber-expression - update a piece of code to make linting happy Note: some rules have been deactivated to make the update of eslint possible without breaking our build. Those rules may be deactivated later as part of dedicated pull requests. * Activate eslint-plugin-simple-import-sort * Add simple-import-sort to dependency-lint ignore list * Revert "Add simple-import-sort to dependency-lint ignore list" This reverts commit 1bd2f32. * Revert "Activate eslint-plugin-simple-import-sort" This reverts commit a0075e7. * Remove eslint-plugin-simple-import-sort Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: aurelien-reeves <aurelien.reeves@smartbear.com> * chore: remove defunct npm script * fix: update colors@1.4.0 cli-table2@0.6.1 (cucumber#1886) * Update package.json A Security Vuln was identified in the Colors package for >1.4.0, offending packages being `1.4.1`, `1.4.44-liberty` - [source1](https://twitter.com/snyksec/status/1480286811482206216?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Etweet) - [source2](https://twitter.com/snyksec/status/1480286811482206216?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Etweet) - [source3](https://security.snyk.io/vuln/SNYK-JS-COLORS-2331906) This PR pins the color package to `1.4.0` as advised on the [snyk page](https://snyk.io/blog/open-source-maintainer-pulls-the-plug-on-npm-packages-colors-and-faker-now-what/) * chore: update changelog * fix: update and pin cli-table3@0.6.1 * chore: update CHANGELOG * chore: update lockfile with new pinned versions * Release 8.0.0-rc.2 * Add a retro Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Kate Dames <kate.funficient@gmail.com> * Extract prettier config from eslintrc (cucumber#1893) This is a more conventional place to store prettier config, and it means that VSCode's prettier plugin can automatically find it. * chore: bump dependency with vulnerability * build: only build on main and for PRs * chore: switch from colors to chalk (cucumber#1895) * swap out dependencies * reimpl * add changelog entry * remove unused import * Replace some uses of `any` type (cucumber#1892) * Replace use of `any` type with `messages.Envelope` Part of cucumber#1648 Co-authored-by: Kate Dames <kate.funficient@gmail.com> Co-authored-by: Emmanuel Ola <54866720+eoola@users.noreply.github.com> * Replace use of `any` with a custom World in CCK example Part of cucumber#1648 Co-authored-by: Emmanuel Ola <54866720+eoola@users.noreply.github.com> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Kate Dames <kate.funficient@gmail.com> * Replace another use of `any` with a custom type Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Kate Dames <kate.funficient@gmail.com> * Replace another use of `any` type Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Kate Dames <kate.funficient@gmail.com> Co-authored-by: Kate Dames <kate.funficient@gmail.com> Co-authored-by: Emmanuel Ola <54866720+eoola@users.noreply.github.com> Co-authored-by: Blaise Pabon <blaise@gmail.com> * docs: improve profiles documentation (cucumber#1897) * Update profiles.md * Update docs/profiles.md Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> * Add new-contributors retro Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Kate Dames <kate.funficient@gmail.com> * Consolidate retro files * Removing usage of lodash Co-authored-by: Aslak Hellesøy <1000+aslakhellesoy@users.noreply.github.com> Co-authored-by: aurelien-reeves <aurelien.reeves@smartbear.com> Co-authored-by: davidgoss <david@davidgoss.co> Co-authored-by: Aslak Hellesøy <aslak.hellesoy@gmail.com> Co-authored-by: David Goss <dgoss@whiteclarkegroup.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: jshifflet <jason.shifflet@gmail.com> Co-authored-by: Charles Rudolph <charles.w.rudolph@gmail.com> Co-authored-by: Nico Jansen <jansennico@gmail.com> Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Ludek <13610612+ludeknovy@users.noreply.github.com> Co-authored-by: Ludek Novy <ludeknovy@fastmail.com> Co-authored-by: Cucumber Ensemble <87445349+cucumber-ensemble@users.noreply.github.com> Co-authored-by: Matt Wynne <matt@mattwynne.net> Co-authored-by: 16sheep <marjutubli@gmail.com> Co-authored-by: Dmytro Shpakovskyi <Marketionist@users.noreply.github.com> Co-authored-by: abelalmeida <abelalmeida@u.boisestate.edu> Co-authored-by: deepziem <54252717+deepziem@users.noreply.github.com> Co-authored-by: Joaquín Sorianello <joac@users.noreply.github.com> Co-authored-by: Jan Molak <1089173+jan-molak@users.noreply.github.com> Co-authored-by: David Goss <david.goss@matillion.com> Co-authored-by: Tomer Ben-Rachel <tomerpacific@gmail.com> Co-authored-by: Emmanuel Ola <54866720+eoola@users.noreply.github.com> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> Co-authored-by: Karla Aparecida Justen <justen.karla@gmail.com> Co-authored-by: Manny <mannyis@typingona.computer> Co-authored-by: Kate Dames <kate.funficient@gmail.com> Co-authored-by: Michael Morris <35374244+michaelm-rsi@users.noreply.github.com>
* [#1044] allow assignment of work using api hook * [#1044] Using array instead of iterable adding id to IWorker for easy lookup of in progress pickles * [#1044] Adding type for parallelCanAssign Simplifying tests * [#1044] Using variable for workers instead of repeating _.values. No need for oneWokeWorker check. inProgressPickles is adequate for starters * [#1044] Mansplaining the custom worker assignment process * [#1044] Making casing consistent * Instead of killing the job, make sure at least 1 worker is assigned * Detailing example a bit more. Slight adjustments for fallback to serial processing * Put close worker back. No longer reused * Utilizing ParallelAssignmentValidator type for ISupportCodeLibrary.parallelCanAssign 1 member in IWorker to cover all states * Moving idle state to worker ready message Defaulting state to new * [#1044] Emitting warning for all workers idle Correct contradiction in README.md Simplifying example in README.md * Resolving some minor README issues * [#1044] Refactoring out nextPickleIndex + README example as test * Omitting complex 3 cause cannot guaranty the worker as both will be ready for work * Dropping use of _.values to iterate for waking workers * copy the pickleIds to leave the passed argument intact * Parsing test cases to verify order and parallelism * Using spawn tag to get errorOutput for warning validation Explicit step definitions for parallel test verification * Simplify tests (#4) Cleaning up feature file * Resolve conflicts (#5) * Cleaning up feature file * Cleaning up feature file * Use new messages without protobuf dependencies, and Markdown support. (#1645) * Start refactoring the code to use the new messages from the json-schema branch. To use those messages, first `npm link` every @cucumber/* module we depend on in the monorepo. Then, `npm link [all the modules]` from this repo. * Everything compiles * Fix import of messages module * Fix import of messages in coordinator * Update predictableTimestamp to work with new messages * Fix tests related to capture groups * Fix some more tests * Fix another spec * All unit tests passing * cck fixes * Make more scenarios pass * Fix import * Export Status * All features passing * npm test is now passing * Update @cucumber dependencies * Add support for Markdown * update yarn lockfile * Fix npm dependencies * Use .feature.md extension. Update dependencies. Co-authored-by: aurelien-reeves <aurelien.reeves@smartbear.com> Co-authored-by: davidgoss <david@davidgoss.co> * Update @cucumber/* dependencies (#1671) * Bump @cucumber/html-formatter * cli: have gherkin emit uris relative to the cwd (#1672) * pass relativeTo to gherkin-streams * fix json formatter * remove more usages of relative * another one * another one * last one * lint * fix this test * fix this test * add changelog Co-authored-by: Aslak Hellesøy <1000+aslakhellesoy@users.noreply.github.com> * Revert "cli: have gherkin emit uris relative to the cwd (#1672)" This reverts commit 5a21c22. * cli: relative path fix again, now with windows (#1673) * generate html report on runs * reinstate original change This reverts commit 8a54a1b. * update test * fix pickle filter for windows * debt: add retry for publish tests (#1674) * add tag to feature * retry config for feature-test run * chore(deps): update dependency @types/bluebird to v3.5.35 (#1676) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/lodash to v4.14.170 (#1678) Co-authored-by: Renovate Bot <bot@renovateapp.com> * format: report total steps correctly in progress bar (#1669) * make cck fail: remove reordering of testCase messages * add new function to deal with testCase * dont emit testCase from PickleRunner * include in result * fix up some tests * move tests to right places * emit test cases from serial runtime * scrappy impl to get serial working * remove unused field * refactor structures, fix tests * make coordinator api more promisey * start to hook up parallel * assemble test cases without ITestStep * remove unused function * TestCase is source of truth * TestCaseRunner is more accurate than PickleRunner? * make parallel runtime work with this * add explanatory comment * fix progress bar formatter counts * changelog * remove temp tag Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> * clarify changelog entry audience * cleanup Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> * chore(deps): update dependency @types/node to v14.17.1 (#1680) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/express to v4.17.12 (#1677) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/semver to v7.3.6 (#1679) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update unit test packages (#1684) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency typescript to v4.3.2 (#1682) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency sinon to v11 (#1686) Co-authored-by: Renovate Bot <bot@renovateapp.com> * Publish reports to https://reports.cucumber.io * Revert "Publish reports to https://reports.cucumber.io" This reverts commit 85b0f1a. * docs: more clarification on setDefaultTimeout * docs: mention that coord process.env copies to workers (#1693) Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> * docs: call out change of after hook result in migration guide (#1692) * document change of after hook result * better wording * whoops * Update docs/migration.md Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> * Empty rerun file exits running no scenarios (#1302) (#1568) Co-authored-by: Aslak Hellesøy <1000+aslakhellesoy@users.noreply.github.com> Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> Co-authored-by: David Goss <david@davidgoss.co> * chore(deps): update eslint packages (#1683) * chore(deps): update eslint packages * autofix prettier Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: Charles Rudolph <charles.w.rudolph@gmail.com> * Update migration guide links (#1694) * typescript: type this as IWorld in user functions (#1690) * type this as any in user fns, add test * update changelog * setWorldConstructor for completeness * use generics to do it right * Update CHANGELOG.md * use a clearer generic type name * Pass --tags correctly, remove duplication * Revert "Pass --tags correctly, remove duplication" This reverts commit dbcb177. * debt: add things to main entry point that people need (#1697) * ensure hook parameters are exported * dont need to mark this arg as possibly undefined * export runtime options * expose formatter options * build: only audit production dependencies * chore: remove redundant profile config * Release 7.3.0 * 7.3.0 * refactor documentation (part 1) (#1699) * add export of cli --help * dont need note about sync * update world docs * document retry * document profiles * start to trim stuff from cli * more on profiles * document parallel * add linsk to readmr * Fixed reports banner to point to https://cucumber.io/docs/cucumber/environment-variables/ (#1703) * Add more arrow function warnings (#1705) * Add more arrow function warnings * Update links * fix(cli): allow targetting same file multiple times (#1708) * fix(cli): allow targetting same file multiple times * Add example to "run multiple scenarios" scenario outline * Update CHANGELOG.md * Deduplicate deduplicate message Co-authored-by: David Goss <david@davidgoss.co> * update supported node versions (#1704) * update supported node versions * fix changelog * update package json Co-authored-by: David Goss <david@davidgoss.co> * chore(deps): update dependency ts-node to v10 (#1687) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency fs-extra to v10 (#1685) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency tsd to v0.17.0 (#1681) * chore(deps): update dependency tsd to v0.17.0 * Add @tsd/typescript to dependency-lint ignore list Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: aurelien-reeves <aurelien.reeves@smartbear.com> * cli: remove deprecated retryTagFilter option (#1713) * remove retryTagFilter camelCased option * add changelog entry * [WIP] remove lodash (#1709) * remove lodash wip * compiles * most unit tests + lint * passing unit tests * fix features * fix feature tests Co-authored-by: David Goss <david@davidgoss.co> Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> * fix(deps): update dependency commander to v8 (#1720) * fix(deps): update dependency commander to v8 * Fix commander upgrade issue Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: aurelien-reeves <aurelien.reeves@smartbear.com> * chore(deps): update dependency @types/node to v14.17.4 (#1715) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency typescript to v4.3.5 (#1716) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency mocha to v9 (#1719) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/chai to v4.2.19 (#1714) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update eslint packages (#1718) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update cucumber packages (#1717) Co-authored-by: Renovate Bot <bot@renovateapp.com> * docs: fix node version mentioned in example * Fix import in docs * expose promise timeout helper (#1566) * Update CONTRIBUTING.md * Update CONTRIBUTING.md * IParameterTypeDefinition fix (#1733) Co-authored-by: Ludek Novy <ludeknovy@fastmail.com> * bringing back v6/5 props (#1732) * bringing back v6/5 props * changelog update * Update CHANGELOG.md Co-authored-by: David Goss <david@davidgoss.co> Co-authored-by: Ludek Novy <ludeknovy@fastmail.com> Co-authored-by: David Goss <david@davidgoss.co> * remove support for generators (#1725) * Explain how to use yarn to list commands (#1730) Co-authored-by: Matt Wynne <matt@mattwynne.net> * Add a 'reindent' test helper (#1722) * Upgrade dependencies (#1736) * (deps) update dependency lint (#1726) * chore: update changelog on main * add release step to edit+publish gh release * Bump reindent-template-literals to 1.1.0 (#1742) * chore(deps): update dependency @types/express to v4.17.13 (#1744) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): pin dependency reindent-template-literals to 1.1.0 (#1743) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/glob to v7.1.4 (#1746) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/mustache to v4.1.2 (#1747) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/fs-extra to v9.0.12 (#1745) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/node to v14.17.6 (#1749) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/mz to v2.7.4 (#1748) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/progress to v2.0.4 (#1750) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/resolve to v1.20.1 (#1751) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/node to v14.17.7 (#1757) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/semver to v7.3.8 (#1752) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/stream-buffers to v3.0.4 (#1753) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/tmp to v0.2.1 (#1754) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update eslint packages (#1756) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/verror to v1.10.5 (#1755) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update unit test packages (#1758) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency ts-node to v10.1.0 (#1760) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/mocha to v9 (#1761) Co-authored-by: Renovate Bot <bot@renovateapp.com> * Make parameter type generic for value checker (#1764) * Add retro notes from new contributors ensemble (#1765) * Add retro folder and notes from last Friday * Add retro doc from the previous new-contributors session * Add some more actions from previous retro * Add pointer to retro-tools * Use youtube link for stream which is permanent * Move retro stuff into docs folder * Fix link to issue * Tweak CONTRIBUTING guide to be more beginner-friendly (#1767) As mentioned in the new contributors ensemble retro[1] [1]: https://github.com/cucumber/cucumber-js/blob/main/docs/retro/2021/07/17.md#what-should-we-decide--change-for-next-time * docs: minor fixes for the styling consistency (#1769) * Yarn to npm (#1774) * Change yarn to npm Co-authored-by: Matt Wynne <matt@cucumber.io> * Changed the contributing guide use to npm Co-authored-by: Matt Wynne <matt@cucumber.io> * fixed the autoformat from vscode * updated the build.yml to now work npm commands * fixed the update-dependencies * try using npm 7 with all node versions Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: David Goss <david@davidgoss.co> * Use typescript incremental build to speed up compilation (#1766) Co-authored-by: David Goss <david@davidgoss.co> * chore(deps): update dependency @types/node to v14.17.12 (#1778) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/progress to v2.0.5 (#1779) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency mocha to v9.1.1 (#1780) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency ts-node to v10.2.1 (#1781) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency typescript to v4.4.2 (#1782) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/node to v14.17.14 (#1785) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update eslint packages (#1787) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update eslint packages (#1786) * chore(deps): update eslint packages * Fix linting errors Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: aurelien-reeves <aurelien.reeves@smartbear.com> * Deactivate renovate dependency dashboard As discussed at our last community meeting, we do not want those dashboards. * chore: update @cucumber/* dependencies, fix willBeRetried usage (#1776) * latest dependencies * make it just about compile * fix test case runner * fix summary helper * fix formatters (ish) * fix last bit in formatters * update fixtures for feature tests * fix attachments cck * hook up retry cck * lint * update doc * update lockfile * Add configuration cli option (#1794) * Config file Option update * Add --config option in the argv parser * Add a scenario in profiles.feature * Add unit tests and refactorize profile_loader * Consider the new --config option when loading profiles * Add some documentation * Add an entry in the changelog Co-authored-by: deepziem <54252717+deepziem@users.noreply.github.com> * feat: add pickleStep to step hook function arg (#1775) * add to interface * implement * update api ref * update changelgo * add test * Increase precision of test case duration measurements. (#1793) * fix(formatter): Enable calling parseTestCaseAttempt on test cases that haven't completed (#1531) * fix(formatter): Enable calling parseTestCaseAttempt on test cases that haven't completed yet * Instanciate a proper TestStepResult when parsing TestCaseAttempt * Add unit tests * Refactor testCaseAttemptParser unit tests Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> Co-authored-by: Aslak Hellesøy <1000+aslakhellesoy@users.noreply.github.com> * add ESM support (take 2) (#1649) * Revert "temporarily revert ESM change (#1647)" This reverts commit 084c1f2. * add failing scenario for deep imports * define entry point with dot * make deep imports work via export patterns * move doc to own file * link to doc from readme * add changelog entry * add example to doc * remove confusing comment * remove cli option, use import by default * update documentation * remove redundant describe * fix ordering * Update features/esm.feature Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> * Update features/esm.feature Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> * simplify tagging * use import only if a javascript file * add note about no transpilers * inline to avoid confusing reassignment * whoops, re-add try/catch * use require with transpilers; import otherwise * remove pointless return * support .cjs config file * type and import the importer * actually dont import - causes issues Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> * docs: add rule to keywords for i18n command (#1800) * add rule to keywords for i18n command * Fix i18n example Co-authored-by: aurelien-reeves <aurelien.reeves@smartbear.com> * set correct version * debt: remove --predictable-ids option (#1801) * WIP * fix up testing * add changelog entry * chore(deps): update dependency @types/fs-extra to v9.0.13 (#1803) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/node to v14.17.20 (#1804) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency typescript to v4.4.3 (#1805) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @sinonjs/fake-timers to v8 (#1810) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update eslint packages (#1809) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency coffeescript to v2.6.0 (#1808) Co-authored-by: Renovate Bot <bot@renovateapp.com> * fix(deps): update cucumber packages (#1807) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update unit test packages (#1806) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update cucumber packages (major) (#1791) * chore(deps): update cucumber packages * Implement new CCK tests from CCK 8.0.0 * Bump compatibility-kit to v9.0.0 Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: aurelien-reeves <aurelien.reeves@smartbear.com> * fix(deps): update cucumber packages (major) (#1811) * chore(deps): update cucumber packages * Implement new CCK tests from CCK 8.0.0 * Bump compatibility-kit to v9.0.0 * fix(deps): update cucumber packages * Fix requires of cucumber-expressions GeneratedExpression class Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: aurelien-reeves <aurelien.reeves@smartbear.com> * Fix link to 7.3.1 * support: re-add setDefinitionFunctionWrapper (minus generator step logic) (#1795) * Revert "remove support for generators (#1725)" This reverts commit a2dcce6. * Remove bluebird and related dependencies * Remove support for generator functions * Update mocha config * Add forbid-pending to mocharc too * Update migration and api_reference documents * Update changelog * Update CHANGELOG entry * Fix dependency audit issue * List formatters in help command (#1798) * feature/list-formatters-in-help-command adding documentation field to Formatter class * feature/list-formatters-in-help-command refactoring getConstructorByType method to hold a Record<string, typeof Formatter> * feature/list-formatters-in-help-command improving return statement to deal with cases where the default formatter should be returned * feature/list-formatters-in-help-command after running lint fix * feature/list-formatters-in-help-command fixing ternary so logic does not invoke load customFormatter * feature/list-formatters-in-help-command creating class that will hold the description of the formatters * feature/list-formatters-in-help-command adding logic to extract the correct documentation for each formatter and altering the IFormatter type to have this field * feature/list-formatters-in-help-command reverting changes made by adding the documentation field to the formatter object * feature/list-formatters-in-help-command adding documentation field to html formatter * feature/list-formatters-in-help-command adding documentation member to json/message/progress/rerun/summary/usage formatters * feature/list-formatters-in-help-command removing formatterDocumentationHelper class as it is no longer needed * feature/list-formatters-in-help-command adding documentation field to rerun formatter * feature/list-formatters-in-help-command fixing return type of getConstructorByType method and running linter * feature/list-formatters-in-help-command removing unnecessary await * feature/list-formatters-in-help-command creating Formatters class to hold different formatters and extracting them from the builder class * feature/list-formatters-in-help-command adding documentation field to progress-bar/snippets/usage-json formatters * feature/list-formatters-in-help-command added method in formatters class to help build the documentation string * feature/list-formatters-in-help-command used recently added method to list all available formatters * feature/list-formatters-in-help-command adding documentation to snippets/progress-bar/usage-json formatters * feature/list-formatters-in-help-command adding new line to format option so that formatters will appear on new line * feature/list/formatters-in-help-command converting documentation field inside formatter to be public and static. Refactoring buildFormatterDocumentationString * feature/list/formatters-in-help-command indenting formatters and removing extra space * feature/list-formatters-in-help-command refactoring building the documentation string * feature/list-formatters-in-help-command adding feature to changelog * (docs,snippets): redo formatter docs, new loading strategy for snippet syntaxes (#1812) * start the formatters doc * document summary formatter * document progress formatter * progress bar * regenerate gifs * clutching at straws here * optimise gifs * edit out the summary failure one for mpw * describe unhappy path for summary * html formatter doco * usage and usage-json doco * replace html formatter screenshot * try again? * update git attrs * wip snippets doco * readd png * better version of html screenshot * better again * document message and json formatters * fix messages link * more info on snippets * finish up snippets * rerun docs * finish up * load snippet syntax in same way as formatters * clarify what the options are * tweak rerun docs * differentiate retry vs rerun in docs * simplify readme * add changelog * make promise interface return a promise * add example output for snippet interfaces * runtime: don't fail the test run for undefined/ambiguous when in dry run (#1814) * update scenario (failing) * clarify * change logic * refactor to share logic across serial+parallel * add changelog * add doco for dry run * add link to changelog entry * Fix github diff link to use main instead of master * Delete .whitesource We have renovate.json * Upgrade dependencies 20211018 (#1820) * Update @cucumber dependencies * Update mocha,ts-node,typescript * fall back to require where file doesnt have a native js extension (#1819) Co-authored-by: Aslak Hellesøy <1000+aslakhellesoy@users.noreply.github.com> * Add Release workflow - see https://github.com/cucumber/.github/blob/main/RELEASING.md * Add missing changelog and contributor entries * Add missing comma * Format changelog (#1821) * Format changelog * Fix links * Fix release workflow * Update release process, use .yaml extension for workflows * Release 8.0.0-rc.1 * Refactor build helpers (#1826) * Extract functions into their own files * Allow injection of exclusion filter to make easier to test * Make sure we always exclude ourselves * chore(deps): pin dependencies (#1827) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): pin dependencies (#1828) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): pin dependency mocha to 9.1.3 (#1829) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/node to v14.17.32 (#1830) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/semver to v7.3.9 (#1831) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/tmp to v0.2.2 (#1832) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency coffeescript to v2.6.1 (#1833) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @cucumber/compatibility-kit to v9.1.2 (#1834) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency ts-node to v10.4.0 (#1836) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/glob to v7.2.0 (#1835) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency tsd to v0.18.0 (#1837) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update eslint packages (#1838) Co-authored-by: Renovate Bot <bot@renovateapp.com> * Ignore OS X files * chore(deps): update dependency @types/node to v16 (#1839) * Factor out instructions about dependency upgrades into central file * Update RELEASING.md * Fix-1735 Parentheses in developers' paths break cucumber's own tests WIP (#1824) * Extract functions into their own files * Allow injection of exclusion filter to make easier to test * Make sure we always exclude ourselves * Add unit test for getDefinitionLineAndUri * -adds regex pattern for stack traces -removes dependencies for StackFram library * - adds "source-map-support" dependency - progress towards fixing bug for paths with parentheses Cucumber's own features fail when parent directory contains parentheses #1735 - gets accurate line numbers for Error stacks in typescript Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Matt Wynne <matt@mattwynne.net> * update cspotcode/source-map-support * remove .DS_Store * updates unit test to support paths on windows Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> * Removes assertion for a failing test that's no longer needed Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> * Removes exception for the custom stack trace feature Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> * Updates changelog Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> * fixed linting for previous commit Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Matt Wynne <matt@mattwynne.net> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> * chore(deps): update dependency @types/node to v16.11.11 (#1854) Co-authored-by: Renovate Bot <bot@renovateapp.com> * fix(deps): update dependency @cucumber/create-meta to v6.0.4 (#1856) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update eslint packages (#1855) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency tsd to v0.19.0 (#1857) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency eslint-plugin-promise to v5.2.0 (#1861) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update unit test packages (#1860) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update unit test packages (#1859) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency typescript to v4.5.2 (#1858) Co-authored-by: Renovate Bot <bot@renovateapp.com> * Update esm.md (#1862) Move the chapter about configuration file at the top of the doc to give it more visibility * Smoother onboarding for Windows developers (#1863) * Add a warning for Windows developers The tests won't work if you don't have "Developer Mode" enabled. See #1852 Co-authored-by: Aurelien Reeves <aurelien.reeves@smartbear.com> * Explain about Developer Mode in contributing guide * Use cross-platform command for copying files * Update changelog * No need to npx in a node script Co-authored-by: Aurelien Reeves <aurelien.reeves@smartbear.com> * api: add runCucumber function internally (#1849) * Export version number of cucumber-js (#1866) * Export version number of cucumber-js * Update CHANGELOG.md * Add package.json to node module exports (#1870) * Add package.json to node module exports * Update changelog * Add a scenario to validate we can export package.json and version numbers * Use template literal rather than string concatenation in direct_imports.feature * Change entry in the changelog * handle spaces in the absolute path (#1845) (#1847) * put quotes around the absolute path (#1845) added quotes to wrap the path to summary.txt to ensure that paths containing spaces are read properly Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> * fix indentations in feature file * fixed the bug but needs unit testing * fixed linting * adds unit testing for handling paths with quotes * adds the fix to option splitter files * updated changelog and removed wip tag Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> Co-authored-by: Aslak Hellesøy <1000+aslakhellesoy@users.noreply.github.com> * Update contributing guide * chore: use new ci-environment package instead of create-meta (#1868) * install lib * WIP * bump other cucumber deps * finish impl * add changelog * redundant comment * update library, simplify mapping * simplify again * update changelog * build: add build artifact for reports * Replace 1 instance of regex with cucumber expression (#1872) * Replace regex with cucumber expression. We decided to split the step definition into two. So that the patterns used be simpler. Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Dane Parchment Jr <dparchmentjr@gmail.com> * Fix linting issues Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Dane Parchment Jr <dparchmentjr@gmail.com> Co-authored-by: aurelien-reeves <aurelien.reeves@smartbear.com> * Replace 2 instances of regex with cucumber expression (#1873) * Replace 2 instance of regex with cucumber expression * Fixing linting issues * Optimizing const string * Making Prettier: from " to ' * chore(deps): pin dependencies (#1874) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/tmp to v0.2.3 (#1876) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency express to v4.17.2 (#1877) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency @types/node to v16.11.17 (#1875) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency tsd to v0.19.1 (#1879) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency prettier to v2.5.1 (#1878) Co-authored-by: Renovate Bot <bot@renovateapp.com> * chore(deps): update dependency typescript to v4.5.4 (#1880) Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: David Goss <david@davidgoss.co> * fix(deps): update dependency @cucumber/ci-environment to v8.0.1 (#1881) Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: David Goss <david@davidgoss.co> * chore(deps): update unit test packages (#1882) Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: David Goss <david@davidgoss.co> * chore(deps): update eslint packages (major) (#1840) * chore(deps): update eslint packages * Update eslint configuration - remove plugins which prevent upgrading eslint - update the configuration based on the one from cucumber-expression - update a piece of code to make linting happy Note: some rules have been deactivated to make the update of eslint possible without breaking our build. Those rules may be deactivated later as part of dedicated pull requests. * Activate eslint-plugin-simple-import-sort * Add simple-import-sort to dependency-lint ignore list * Revert "Add simple-import-sort to dependency-lint ignore list" This reverts commit 1bd2f32. * Revert "Activate eslint-plugin-simple-import-sort" This reverts commit a0075e7. * Remove eslint-plugin-simple-import-sort Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: aurelien-reeves <aurelien.reeves@smartbear.com> * chore: remove defunct npm script * fix: update colors@1.4.0 cli-table2@0.6.1 (#1886) * Update package.json A Security Vuln was identified in the Colors package for >1.4.0, offending packages being `1.4.1`, `1.4.44-liberty` - [source1](https://twitter.com/snyksec/status/1480286811482206216?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Etweet) - [source2](https://twitter.com/snyksec/status/1480286811482206216?ref_src=twsrc%5Egoogle%7Ctwcamp%5Eserp%7Ctwgr%5Etweet) - [source3](https://security.snyk.io/vuln/SNYK-JS-COLORS-2331906) This PR pins the color package to `1.4.0` as advised on the [snyk page](https://snyk.io/blog/open-source-maintainer-pulls-the-plug-on-npm-packages-colors-and-faker-now-what/) * chore: update changelog * fix: update and pin cli-table3@0.6.1 * chore: update CHANGELOG * chore: update lockfile with new pinned versions * Release 8.0.0-rc.2 * Add a retro Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Kate Dames <kate.funficient@gmail.com> * Extract prettier config from eslintrc (#1893) This is a more conventional place to store prettier config, and it means that VSCode's prettier plugin can automatically find it. * chore: bump dependency with vulnerability * build: only build on main and for PRs * chore: switch from colors to chalk (#1895) * swap out dependencies * reimpl * add changelog entry * remove unused import * Replace some uses of `any` type (#1892) * Replace use of `any` type with `messages.Envelope` Part of #1648 Co-authored-by: Kate Dames <kate.funficient@gmail.com> Co-authored-by: Emmanuel Ola <54866720+eoola@users.noreply.github.com> * Replace use of `any` with a custom World in CCK example Part of #1648 Co-authored-by: Emmanuel Ola <54866720+eoola@users.noreply.github.com> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Kate Dames <kate.funficient@gmail.com> * Replace another use of `any` with a custom type Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Kate Dames <kate.funficient@gmail.com> * Replace another use of `any` type Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Kate Dames <kate.funficient@gmail.com> Co-authored-by: Kate Dames <kate.funficient@gmail.com> Co-authored-by: Emmanuel Ola <54866720+eoola@users.noreply.github.com> Co-authored-by: Blaise Pabon <blaise@gmail.com> * docs: improve profiles documentation (#1897) * Update profiles.md * Update docs/profiles.md Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> Co-authored-by: Aurélien Reeves <aurelien.reeves@smartbear.com> * Add new-contributors retro Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Kate Dames <kate.funficient@gmail.com> * Consolidate retro files * Removing usage of lodash Co-authored-by: Aslak Hellesøy <1000+aslakhellesoy@users.noreply.github.com> Co-authored-by: aurelien-reeves <aurelien.reeves@smartbear.com> Co-authored-by: davidgoss <david@davidgoss.co> Co-authored-by: Aslak Hellesøy <aslak.hellesoy@gmail.com> Co-authored-by: David Goss <dgoss@whiteclarkegroup.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: jshifflet <jason.shifflet@gmail.com> Co-authored-by: Charles Rudolph <charles.w.rudolph@gmail.com> Co-authored-by: Nico Jansen <jansennico@gmail.com> Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Ludek <13610612+ludeknovy@users.noreply.github.com> Co-authored-by: Ludek Novy <ludeknovy@fastmail.com> Co-authored-by: Cucumber Ensemble <87445349+cucumber-ensemble@users.noreply.github.com> Co-authored-by: Matt Wynne <matt@mattwynne.net> Co-authored-by: 16sheep <marjutubli@gmail.com> Co-authored-by: Dmytro Shpakovskyi <Marketionist@users.noreply.github.com> Co-authored-by: abelalmeida <abelalmeida@u.boisestate.edu> Co-authored-by: deepziem <54252717+deepziem@users.noreply.github.com> Co-authored-by: Joaquín Sorianello <joac@users.noreply.github.com> Co-authored-by: Jan Molak <1089173+jan-molak@users.noreply.github.com> Co-authored-by: David Goss <david.goss@matillion.com> Co-authored-by: Tomer Ben-Rachel <tomerpacific@gmail.com> Co-authored-by: Emmanuel Ola <54866720+eoola@users.noreply.github.com> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> Co-authored-by: Karla Aparecida Justen <justen.karla@gmail.com> Co-authored-by: Manny <mannyis@typingona.computer> Co-authored-by: Kate Dames <kate.funficient@gmail.com> Co-authored-by: Michael Morris <35374244+michaelm-rsi@users.noreply.github.com> * update feature helper * change table structure * reduce timeout, attempt to make more reliable on windows * fix timing issue, larger time window to reduce flakes * Update CHANGELOG.md * update docs * increase time to decrease chance of flakes Co-authored-by: Aslak Hellesøy <1000+aslakhellesoy@users.noreply.github.com> Co-authored-by: aurelien-reeves <aurelien.reeves@smartbear.com> Co-authored-by: davidgoss <david@davidgoss.co> Co-authored-by: Aslak Hellesøy <aslak.hellesoy@gmail.com> Co-authored-by: David Goss <dgoss@whiteclarkegroup.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Renovate Bot <bot@renovateapp.com> Co-authored-by: jshifflet <jason.shifflet@gmail.com> Co-authored-by: Charles Rudolph <charles.w.rudolph@gmail.com> Co-authored-by: Nico Jansen <jansennico@gmail.com> Co-authored-by: Matt Wynne <matt@cucumber.io> Co-authored-by: Ludek <13610612+ludeknovy@users.noreply.github.com> Co-authored-by: Ludek Novy <ludeknovy@fastmail.com> Co-authored-by: Cucumber Ensemble <87445349+cucumber-ensemble@users.noreply.github.com> Co-authored-by: Matt Wynne <matt@mattwynne.net> Co-authored-by: 16sheep <marjutubli@gmail.com> Co-authored-by: Dmytro Shpakovskyi <Marketionist@users.noreply.github.com> Co-authored-by: abelalmeida <abelalmeida@u.boisestate.edu> Co-authored-by: deepziem <54252717+deepziem@users.noreply.github.com> Co-authored-by: Joaquín Sorianello <joac@users.noreply.github.com> Co-authored-by: Jan Molak <1089173+jan-molak@users.noreply.github.com> Co-authored-by: David Goss <david.goss@matillion.com> Co-authored-by: Tomer Ben-Rachel <tomerpacific@gmail.com> Co-authored-by: Emmanuel Ola <54866720+eoola@users.noreply.github.com> Co-authored-by: Blaise Pabon <blaise@gmail.com> Co-authored-by: Dane Parchment <dparchmentjr@gmail.com> Co-authored-by: Karla Aparecida Justen <justen.karla@gmail.com> Co-authored-by: Manny <mannyis@typingona.computer> Co-authored-by: Kate Dames <kate.funficient@gmail.com> Co-authored-by: Michael Morris <35374244+michaelm-rsi@users.noreply.github.com>
Describe the bug
Whenever the parent directory has parentheses in its name, I noticed the cucumber features tests start to fail. I also noticed that in the tests that are run, the path for the parent directory drops the parentheses from the path name. For the above reason, the path can not be found for a specified directory.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Passing tests
Screenshots
Desktop (please complete the following information):
Additional context
Trying to run tests to contribute to cucumber-js with @mattwynne as part of the Cucumber first timers mob and the folder where I keep my code happens to have parentheses in its name. For more context, this is not the folder shown in the screenshot, that's simply provided for testing purposes.
The text was updated successfully, but these errors were encountered: