Releases: badeball/cypress-cucumber-preprocessor
v24.0.0
Breaking changes:
-
Removed support for using browserify as a bundler.
-
Browserify is largely unmaintained at this point and is making it impossible to keep dependencies up-to-date as Browserify itself does not do that. Furthermore, the Browserify bundler is deprecated by Cypress. If you'd still like to use Browserify, you can pin your dependency on
@badeball/cypress-cucumber-preprocessorto~23.x.y. -
A branch named
v23.x.yhas been created to continue illustrating how to use Browserify. This is mentioned in the FAQ.
-
-
Bump node requirement slightly from v20.0.0 to ^20.12.0, ^21.7.0 or >=22.
- This is in preperation of replacing
chalkwithutil.styleText.
- This is in preperation of replacing
Other changes:
-
Run hooks (BeforeAll/AfterAll) may now be optionally named. This is in line with how cucumber-js behaves.
-
Allow step hooks to return skipped / pending.
- This is similar to how steps themselves can also return the above mentioned literals. This is in line with how cucumber-js behaves.
-
Attachments (using log(), link() or attach()) can be added in test run hooks (BeforeAll/AfterAll). This is in line with how cucumber-js behaves.
-
Remove use of patch-package in development mode, which was causing some issues, closes #1255.
-
Add rudimentary support for videos in reports (messages & HTML), fixes #1139.
-
This can be enabled by setting
attachments.addVideostotrue. -
Videos, as with screenshots, are base64-encoded inline within the reports, making them bigger. I suspect size might be an issue for large attachments and this is why I consider this to be rudimentary to begin with. As issues arise, options to externalize attachments might be considered.
-
v23.2.1
v23.2.0
-
Add a flag to turn expectation errors soft. Relates to #1313 and #1222.
-
During creation of message reports, which the JSON & HTML reports are products of, some test state is tracked by this library. This requires taking into account a myriad of edge cases, mostly related to Cypress' reload behavior. There are however likely several remaining edge cases that are unaccounted for.
In case of #1222, the fail fast strategy adopted here appeared to mask an underlying issue. I suspect this might also be the case for #1313 and similar issues. Thus an option for erroring softly is introduced. With this option, instead of throwing fast in Cypress' event handlers, the preprocessor will emit an error message to stderr at the end of a run.
My hope is that this will make it easier for the end-user to provide proper reproducible examples when running into these errors. Additionally, it can be useful for users whom which reports aren't strictly a necessity but do encounter such errors.
This option can be configured similar to other options, with examples shown below.
// package.json { "dependencies": { "@badeball/cypress-cucumber-preprocessor": "latest" }, "cypress-cucumber-preprocessor": { "state": { "softErrors": true } } }// .cypress-cucumber-preprocessorrc.json { "state": { "softErrors": true } }$ cypress run -e stateSoftErrors=true$ env CYPRESS_stateSoftErrors=true cypress run
-
v23.1.0
-
Bumb engine requirement to Node v20.
- This was accidentally left out during release of v23.0.0, where dropped support for v18 was announced. Due to the announcement, I don't consider this to be another breaking change.
-
Expand type signature of scenario and step hooks, to allow tags to be defined using pure string arguments. This is in line with how cucumber-js behaves.
-
Add support for attachments with filenames. This is in line with how cucumber-js behaves.
-
Implement
log, as seen in cucumber-js. -
Implement
link, as seen in cucumber-js. -
Minor changes to the messages report, to ensure compatibility with
cucumber-js.
v23.0.0
v22.2.0
v22.1.0
-
Gracefully handle sourcemaps when running component tests with webpack and chunks enabled (default behavior), fixes #1296.
-
Avoid setting
sourcesContent: falseto esbuild when using theprettySourceMapoption, relates to #1285.-
This means that the default bundle when using
prettySourceMapis larger and may affect performance. However, the in-app experience is likely more aligned with user expectation. Users can disable this behavior by explicitly configuringsourcesContent: falsethemselves, as shown below.on( "file:preprocessor", createBundler({ sourcesContent: false, plugins: [createEsbuildPlugin(config, { prettySourceMap: true })], }) );
-