## TL;DR

A step only renders when it is awaited, so every test.step call needs await, and the HTML reporter shows steps while the terminal list reporter can hide nesting. Fix the awaits first, then check the reporter.

## The query

```text
playwright test.step() not showing in report: how to fix
```

## Use this when

- test.step missing from the report
- the report shows flat tests with no nesting
- steps appear locally but not in CI artifacts

## Not for

- writing a custom reporter
- tracing (a separate feature)
- test annotations

## Steps

1. Search the spec for test.step( calls missing await and add it to each. Expected output: every test.step call is awaited.
2. Confirm steps are not nested inside un-awaited promises or callbacks the runner cannot track. Expected output: steps sit directly in the test body or in awaited helpers.
3. Open the HTML report, not the terminal list output, and expand a test. Expected output: the step names appear nested under the test.
4. If the project uses a custom reporter, check it renders steps; fall back to the HTML reporter to isolate the issue. Expected output: steps visible under the HTML reporter.
5. Re-run and confirm each step appears with its own timing. Expected output: a step tree in the report matching the code.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_nUHs76gE_us1LMr-QEVllA
