Skip to content

Hide successful hooks by default#415

Merged
mpkorstanje merged 12 commits intomainfrom
collapse-green-hooks
Nov 18, 2025
Merged

Hide successful hooks by default#415
mpkorstanje merged 12 commits intomainfrom
collapse-green-hooks

Conversation

@davidjgoss
Copy link
Contributor

@davidjgoss davidjgoss commented Nov 15, 2025

🤔 What's changed?

By default, omit hook steps when rendering a test case outcome unless the hook has a non-success status. Also, provide a button to reveal them.

Screen.Recording.2025-11-15.at.11.48.17.mov

⚡️ What's your motivation?

Fixes #414.

🏷️ What kind of change is this?

  • ⚡ New feature (non-breaking change which adds new behaviour)

♻️ Anything particular you want feedback on?

This implementation shows any non-successful hooks by default. That would include skipped hooks. Do we want that, or should be just show failed hooks by default? There are conflicting use cases here:

  • If a hook is skipped because an earlier step failed, that is not very interesting by default
  • If the code of a given hook declares itself skipped and causes all subsequent steps (and the scenario overall) to be skipped, we might prefer to show that by default

📋 Checklist:

  • I agree to respect and uphold the Cucumber Community Code of Conduct
  • I've changed the behaviour of the code
    • I have added/updated tests to cover my changes.
  • My change requires a change to the documentation.
    • I have updated the documentation accordingly.
  • Users should know about my change
    • I have added an entry to the "Unreleased" section of the CHANGELOG, linking to this pull request.

This text was originally generated from a template, then edited by hand. You can modify the template here.

@netlify
Copy link

netlify bot commented Nov 15, 2025

Deploy Preview for cucumber-react-preview ready!

Name Link
🔨 Latest commit d47e4af
🔍 Latest deploy log https://app.netlify.com/projects/cucumber-react-preview/deploys/691c2a8d0774770008b39a54
😎 Deploy Preview https://deploy-preview-415--cucumber-react-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@davidjgoss davidjgoss marked this pull request as ready for review November 15, 2025 11:49
@mpkorstanje
Copy link
Contributor

mpkorstanje commented Nov 17, 2025

The ideal solution would be to show only hooks that are not (passed, skipped). And the first hook that is skipped, and preceeded by a passing hook or step.

@davidjgoss
Copy link
Contributor Author

And the first hook that is skipped, and preceeded by a passing hook or step.

Or indeed is not preceded by any step (skip on first hook). That should be doable.

Copy link
Contributor

@mpkorstanje mpkorstanje left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nitpick aside.

@mpkorstanje mpkorstanje merged commit 1d2d33c into main Nov 18, 2025
6 checks passed
@mpkorstanje mpkorstanje deleted the collapse-green-hooks branch November 18, 2025 11:10
@mpkorstanje
Copy link
Contributor

Btw, I really like the new section in the preview with all the CKK examples!

mergify bot added a commit to ArcadeData/arcadedb that referenced this pull request Feb 8, 2026
Bumps `cucumber.version` from 7.22.1 to 7.34.2.
Updates `io.cucumber:cucumber-java` from 7.22.1 to 7.34.2
Release notes

*Sourced from [io.cucumber:cucumber-java's releases](https://github.com/cucumber/cucumber-jvm/releases).*

> v7.34.2
> -------
>
> ### Fixed
>
> * [Core] Reverted: Early filtering of anonymous classes for glue ([#3158](https://redirect.github.com/cucumber/cucumber-jvm/pull/3158))
>
> v7.34.1
> -------
>
> ### Fixed
>
> * Ensure dependencies converge ([#3157](https://redirect.github.com/cucumber/cucumber-jvm/issues/3157)
>
> v7.34.0
> -------
>
> ### Added
>
> * [Core] Hide successful hooks by default in HTML report ([cucumber/react-components#415](https://redirect.github.com/cucumber/react-components/pull/415))
> * [Java] Support Provider instances with Pico Container ([#2879](https://redirect.github.com/cucumber/cucumber-jvm/issues/2879), [#3128](https://redirect.github.com/cucumber/cucumber-jvm/pull/3128) Stefan Gasterstädt)
> * [Java] Add Step info to `@BeforeStep` and `@AfterStep` hooks ([#3139](https://redirect.github.com/cucumber/cucumber-jvm/pull/3139), Menelaos Mamouzellos)
>
> ### Changed
>
> * [Core] Refactor internals to use [messages-ndjson](https://github.com/cucumber/messages-ndjson) for serialization ([#3138](https://redirect.github.com/cucumber/cucumber-jvm/pull/3138))
> * [Core] Early filtering of anonymous classes for glue ([#3150](https://redirect.github.com/cucumber/cucumber-jvm/pull/3150), Julien Kronegg)
>
> ### Fixed
>
> * [Core] Ignore all potential class loading issues ([#3135](https://redirect.github.com/cucumber/cucumber-jvm/pull/3135), Christoph Läubrich)
>
> v7.33.0
> -------
>
> ### Added
>
> * [Java] Add `Scenario.getLanguage()` to return the current language ([#3124](https://redirect.github.com/cucumber/cucumber-jvm/pull/3124) Stefan Gasterstädt)
>
> ### Changed
>
> * [Core] Upload Cucumber Reports with Gzip encoding ([#3115](https://redirect.github.com/cucumber/cucumber-jvm/pull/3115))
> * [Core] Render the empty tag expression as an empty string ([#222](https://redirect.github.com/cucumber/tag-expressions/pull/222))
> * [Core] Update dependency io.cucumber:html-formatter to v22.2.0
> * [Core] Update dependency io.cucumber:tag-expressions to v8.1.0
> * [Core] Update dependency io.cucumber:cucumber-json-formatter to v0.3.2
>
> ### Fixed
>
> * [Core] Improve error message for missing operands in tag expressions ([#221](https://redirect.github.com/cucumber/tag-expressions/pull/221))
> * [Core] Include empty scenarios and backgrounds in json report ([#34](https://redirect.github.com/cucumber/cucumber-json-formatter/pull/34))
>
> v7.32.0
> -------
>
> ### Changed
>
> * [Core] Update dependency io.cucumber:gherkin to v36.1.0
> * [Core] Update dependency io.cucumber:html-formatter to v22.1.0
> * [Core] Update dependency io.cucumber:junit-xml-formatter to v0.11.0
> * [Core] Update dependency io.cucumber:pretty-formatter to v2.4.1
>
> ### Fixed
>
> * [Core] Add OS version to `Meta` message ([#3108](https://redirect.github.com/cucumber/cucumber-jvm/pull/3108))
> * [Core] Fix interpolated data tables and doc string arguments in Json report ([#29](https://redirect.github.com/cucumber/cucumber-json-formatter/pull/29))
>
> v7.31.0
> -------
>
> ### Added
>
> * [Core] Add a `UsageJsonFormatter`, use with `--plugin usage-json` ([#3086](https://redirect.github.com/cucumber/cucumber-jvm/pull/3086) M.P. Korstanje)

... (truncated)


Changelog

*Sourced from [io.cucumber:cucumber-java's changelog](https://github.com/cucumber/cucumber-jvm/blob/main/CHANGELOG.md).*

> [7.34.2] - 2026-01-29
> ---------------------
>
> ### Fixed
>
> * [Core] Reverted: Early filtering of anonymous classes for glue ([#3158](https://redirect.github.com/cucumber/cucumber-jvm/pull/3158))
>
> [7.34.1] - 2026-01-28
> ---------------------
>
> ### Fixed
>
> * Ensure dependencies converge ([#3157](https://redirect.github.com/cucumber/cucumber-jvm/issues/3157)
>
> [7.34.0] - 2026-01-28
> ---------------------
>
> ### Added
>
> * [Core] Hide successful hooks by default in HTML report ([cucumber/react-components#415](https://redirect.github.com/cucumber/react-components/pull/415))
> * [Java] Support Provider instances with Pico Container ([#2879](https://redirect.github.com/cucumber/cucumber-jvm/issues/2879), [#3128](https://redirect.github.com/cucumber/cucumber-jvm/pull/3128) Stefan Gasterstädt)
> * [Java] Add Step info to `@BeforeStep` and `@AfterStep` hooks ([#3139](https://redirect.github.com/cucumber/cucumber-jvm/pull/3139), Menelaos Mamouzellos)
>
> ### Changed
>
> * [Core] Refactor internals to use [messages-ndjson](https://github.com/cucumber/messages-ndjson) for serialization ([#3138](https://redirect.github.com/cucumber/cucumber-jvm/pull/3138))
> * [Core] Early filtering of anonymous classes for glue ([#3150](https://redirect.github.com/cucumber/cucumber-jvm/pull/3150), Julien Kronegg)
>
> ### Fixed
>
> * [Core] Ignore all potential class loading issues ([#3135](https://redirect.github.com/cucumber/cucumber-jvm/pull/3135), Christoph Läubrich)
>
> [7.33.0] - 2025-12-09
> ---------------------
>
> ### Added
>
> * [Java] Add `Scenario.getLanguage()` to return the current language ([#3124](https://redirect.github.com/cucumber/cucumber-jvm/pull/3124) Stefan Gasterstädt)
>
> ### Changed
>
> * [Core] Upload Cucumber Reports with Gzip encoding ([#3115](https://redirect.github.com/cucumber/cucumber-jvm/pull/3115))
> * [Core] Render the empty tag expression as an empty string ([#222](https://redirect.github.com/cucumber/tag-expressions/pull/222))
> * [Core] Update dependency io.cucumber:html-formatter to v22.2.0
> * [Core] Update dependency io.cucumber:tag-expressions to v8.1.0
> * [Core] Update dependency io.cucumber:cucumber-json-formatter to v0.3.2
>
> ### Fixed
>
> * [Core] Improve error message for missing operands in tag expressions ([#221](https://redirect.github.com/cucumber/tag-expressions/pull/221))
> * [Core] Include empty scenarios and backgrounds in json report ([#34](https://redirect.github.com/cucumber/cucumber-json-formatter/pull/34))
>
> [7.32.0] - 2025-11-21
> ---------------------
>
> ### Changed
>
> * [Core] Update dependency io.cucumber:gherkin to v36.1.0
> * [Core] Update dependency io.cucumber:html-formatter to v22.1.0
> * [Core] Update dependency io.cucumber:junit-xml-formatter to v0.11.0
> * [Core] Update dependency io.cucumber:pretty-formatter to v2.4.1
>
> ### Fixed
>
> * [Core] Add OS version to `Meta` message ([#3108](https://redirect.github.com/cucumber/cucumber-jvm/pull/3108))
> * [Core] Fix interpolated data tables and doc string arguments in Json report ([#29](https://redirect.github.com/cucumber/cucumber-json-formatter/pull/29))
>
> [7.31.0] - 2025-10-27
> ---------------------
>
> ### Added
>
> * [Core] Add a `UsageJsonFormatter`, use with `--plugin usage-json` ([#3086](https://redirect.github.com/cucumber/cucumber-jvm/pull/3086) M.P. Korstanje)

... (truncated)


Commits

* [`b5292ab`](cucumber/cucumber-jvm@b5292ab) Prepare release v7.34.2
* [`3f97272`](cucumber/cucumber-jvm@3f97272) Revert "Avoid scanning anonymous classes ([#3150](https://redirect.github.com/cucumber/cucumber-jvm/issues/3150))" ([#3158](https://redirect.github.com/cucumber/cucumber-jvm/issues/3158))
* [`26a7afa`](cucumber/cucumber-jvm@26a7afa) Update Revapi supressions ([#3159](https://redirect.github.com/cucumber/cucumber-jvm/issues/3159))
* [`2a1a3d6`](cucumber/cucumber-jvm@2a1a3d6) Prepare for the next development iteration
* [`88372a3`](cucumber/cucumber-jvm@88372a3) Prepare release v7.34.1
* [`142b589`](cucumber/cucumber-jvm@142b589) Ensure dependencies converge pt2
* [`9e77642`](cucumber/cucumber-jvm@9e77642) Ensure dependencies converge
* [`4d9dd93`](cucumber/cucumber-jvm@4d9dd93) Prepare for the next development iteration
* [`d16903c`](cucumber/cucumber-jvm@d16903c) Prepare release v7.34.0
* [`7948150`](cucumber/cucumber-jvm@7948150) Update CHANGELOG
* Additional commits viewable in [compare view](cucumber/cucumber-jvm@v7.22.1...v7.34.2)
  
Updates `io.cucumber:cucumber-junit-platform-engine` from 7.22.1 to 7.34.2
Release notes

*Sourced from [io.cucumber:cucumber-junit-platform-engine's releases](https://github.com/cucumber/cucumber-jvm/releases).*

> v7.34.2
> -------
>
> ### Fixed
>
> * [Core] Reverted: Early filtering of anonymous classes for glue ([#3158](https://redirect.github.com/cucumber/cucumber-jvm/pull/3158))
>
> v7.34.1
> -------
>
> ### Fixed
>
> * Ensure dependencies converge ([#3157](https://redirect.github.com/cucumber/cucumber-jvm/issues/3157)
>
> v7.34.0
> -------
>
> ### Added
>
> * [Core] Hide successful hooks by default in HTML report ([cucumber/react-components#415](https://redirect.github.com/cucumber/react-components/pull/415))
> * [Java] Support Provider instances with Pico Container ([#2879](https://redirect.github.com/cucumber/cucumber-jvm/issues/2879), [#3128](https://redirect.github.com/cucumber/cucumber-jvm/pull/3128) Stefan Gasterstädt)
> * [Java] Add Step info to `@BeforeStep` and `@AfterStep` hooks ([#3139](https://redirect.github.com/cucumber/cucumber-jvm/pull/3139), Menelaos Mamouzellos)
>
> ### Changed
>
> * [Core] Refactor internals to use [messages-ndjson](https://github.com/cucumber/messages-ndjson) for serialization ([#3138](https://redirect.github.com/cucumber/cucumber-jvm/pull/3138))
> * [Core] Early filtering of anonymous classes for glue ([#3150](https://redirect.github.com/cucumber/cucumber-jvm/pull/3150), Julien Kronegg)
>
> ### Fixed
>
> * [Core] Ignore all potential class loading issues ([#3135](https://redirect.github.com/cucumber/cucumber-jvm/pull/3135), Christoph Läubrich)
>
> v7.33.0
> -------
>
> ### Added
>
> * [Java] Add `Scenario.getLanguage()` to return the current language ([#3124](https://redirect.github.com/cucumber/cucumber-jvm/pull/3124) Stefan Gasterstädt)
>
> ### Changed
>
> * [Core] Upload Cucumber Reports with Gzip encoding ([#3115](https://redirect.github.com/cucumber/cucumber-jvm/pull/3115))
> * [Core] Render the empty tag expression as an empty string ([#222](https://redirect.github.com/cucumber/tag-expressions/pull/222))
> * [Core] Update dependency io.cucumber:html-formatter to v22.2.0
> * [Core] Update dependency io.cucumber:tag-expressions to v8.1.0
> * [Core] Update dependency io.cucumber:cucumber-json-formatter to v0.3.2
>
> ### Fixed
>
> * [Core] Improve error message for missing operands in tag expressions ([#221](https://redirect.github.com/cucumber/tag-expressions/pull/221))
> * [Core] Include empty scenarios and backgrounds in json report ([#34](https://redirect.github.com/cucumber/cucumber-json-formatter/pull/34))
>
> v7.32.0
> -------
>
> ### Changed
>
> * [Core] Update dependency io.cucumber:gherkin to v36.1.0
> * [Core] Update dependency io.cucumber:html-formatter to v22.1.0
> * [Core] Update dependency io.cucumber:junit-xml-formatter to v0.11.0
> * [Core] Update dependency io.cucumber:pretty-formatter to v2.4.1
>
> ### Fixed
>
> * [Core] Add OS version to `Meta` message ([#3108](https://redirect.github.com/cucumber/cucumber-jvm/pull/3108))
> * [Core] Fix interpolated data tables and doc string arguments in Json report ([#29](https://redirect.github.com/cucumber/cucumber-json-formatter/pull/29))
>
> v7.31.0
> -------
>
> ### Added
>
> * [Core] Add a `UsageJsonFormatter`, use with `--plugin usage-json` ([#3086](https://redirect.github.com/cucumber/cucumber-jvm/pull/3086) M.P. Korstanje)

... (truncated)


Changelog

*Sourced from [io.cucumber:cucumber-junit-platform-engine's changelog](https://github.com/cucumber/cucumber-jvm/blob/main/CHANGELOG.md).*

> [7.34.2] - 2026-01-29
> ---------------------
>
> ### Fixed
>
> * [Core] Reverted: Early filtering of anonymous classes for glue ([#3158](https://redirect.github.com/cucumber/cucumber-jvm/pull/3158))
>
> [7.34.1] - 2026-01-28
> ---------------------
>
> ### Fixed
>
> * Ensure dependencies converge ([#3157](https://redirect.github.com/cucumber/cucumber-jvm/issues/3157)
>
> [7.34.0] - 2026-01-28
> ---------------------
>
> ### Added
>
> * [Core] Hide successful hooks by default in HTML report ([cucumber/react-components#415](https://redirect.github.com/cucumber/react-components/pull/415))
> * [Java] Support Provider instances with Pico Container ([#2879](https://redirect.github.com/cucumber/cucumber-jvm/issues/2879), [#3128](https://redirect.github.com/cucumber/cucumber-jvm/pull/3128) Stefan Gasterstädt)
> * [Java] Add Step info to `@BeforeStep` and `@AfterStep` hooks ([#3139](https://redirect.github.com/cucumber/cucumber-jvm/pull/3139), Menelaos Mamouzellos)
>
> ### Changed
>
> * [Core] Refactor internals to use [messages-ndjson](https://github.com/cucumber/messages-ndjson) for serialization ([#3138](https://redirect.github.com/cucumber/cucumber-jvm/pull/3138))
> * [Core] Early filtering of anonymous classes for glue ([#3150](https://redirect.github.com/cucumber/cucumber-jvm/pull/3150), Julien Kronegg)
>
> ### Fixed
>
> * [Core] Ignore all potential class loading issues ([#3135](https://redirect.github.com/cucumber/cucumber-jvm/pull/3135), Christoph Läubrich)
>
> [7.33.0] - 2025-12-09
> ---------------------
>
> ### Added
>
> * [Java] Add `Scenario.getLanguage()` to return the current language ([#3124](https://redirect.github.com/cucumber/cucumber-jvm/pull/3124) Stefan Gasterstädt)
>
> ### Changed
>
> * [Core] Upload Cucumber Reports with Gzip encoding ([#3115](https://redirect.github.com/cucumber/cucumber-jvm/pull/3115))
> * [Core] Render the empty tag expression as an empty string ([#222](https://redirect.github.com/cucumber/tag-expressions/pull/222))
> * [Core] Update dependency io.cucumber:html-formatter to v22.2.0
> * [Core] Update dependency io.cucumber:tag-expressions to v8.1.0
> * [Core] Update dependency io.cucumber:cucumber-json-formatter to v0.3.2
>
> ### Fixed
>
> * [Core] Improve error message for missing operands in tag expressions ([#221](https://redirect.github.com/cucumber/tag-expressions/pull/221))
> * [Core] Include empty scenarios and backgrounds in json report ([#34](https://redirect.github.com/cucumber/cucumber-json-formatter/pull/34))
>
> [7.32.0] - 2025-11-21
> ---------------------
>
> ### Changed
>
> * [Core] Update dependency io.cucumber:gherkin to v36.1.0
> * [Core] Update dependency io.cucumber:html-formatter to v22.1.0
> * [Core] Update dependency io.cucumber:junit-xml-formatter to v0.11.0
> * [Core] Update dependency io.cucumber:pretty-formatter to v2.4.1
>
> ### Fixed
>
> * [Core] Add OS version to `Meta` message ([#3108](https://redirect.github.com/cucumber/cucumber-jvm/pull/3108))
> * [Core] Fix interpolated data tables and doc string arguments in Json report ([#29](https://redirect.github.com/cucumber/cucumber-json-formatter/pull/29))
>
> [7.31.0] - 2025-10-27
> ---------------------
>
> ### Added
>
> * [Core] Add a `UsageJsonFormatter`, use with `--plugin usage-json` ([#3086](https://redirect.github.com/cucumber/cucumber-jvm/pull/3086) M.P. Korstanje)

... (truncated)


Commits

* [`b5292ab`](cucumber/cucumber-jvm@b5292ab) Prepare release v7.34.2
* [`3f97272`](cucumber/cucumber-jvm@3f97272) Revert "Avoid scanning anonymous classes ([#3150](https://redirect.github.com/cucumber/cucumber-jvm/issues/3150))" ([#3158](https://redirect.github.com/cucumber/cucumber-jvm/issues/3158))
* [`26a7afa`](cucumber/cucumber-jvm@26a7afa) Update Revapi supressions ([#3159](https://redirect.github.com/cucumber/cucumber-jvm/issues/3159))
* [`2a1a3d6`](cucumber/cucumber-jvm@2a1a3d6) Prepare for the next development iteration
* [`88372a3`](cucumber/cucumber-jvm@88372a3) Prepare release v7.34.1
* [`142b589`](cucumber/cucumber-jvm@142b589) Ensure dependencies converge pt2
* [`9e77642`](cucumber/cucumber-jvm@9e77642) Ensure dependencies converge
* [`4d9dd93`](cucumber/cucumber-jvm@4d9dd93) Prepare for the next development iteration
* [`d16903c`](cucumber/cucumber-jvm@d16903c) Prepare release v7.34.0
* [`7948150`](cucumber/cucumber-jvm@7948150) Update CHANGELOG
* Additional commits viewable in [compare view](cucumber/cucumber-jvm@v7.22.1...v7.34.2)
  
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
  
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot show  ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Reduce noise from uneventful hooks

2 participants