Functions

f
updateCounter(
counter: Counter,
details: TestDetails
): void

Applies one testEnd to the run's counters. Kept separate from any reporter so the numbers are identical no matter which reporter (or how many) is active — the exit code and the TAP plan both read counter, so it must be updated exactly once per test.

Interfaces

I
BrowserLog

A console.* call or an uncaught error from the page under test.

  • args: unknown[]

    The call's arguments, resolved to JSON values where the page could serialize them.

  • text: string

    The rendered single-line text. Always present.

  • type: string

    The page console type (log/warning/error/info/debug), or pageerror.

I
Notice

One diagnostic from qunitx itself: which files a narrowing flag scoped the run to, a filter that matched nothing, a build error, a timeout.

I
Reporter

The reporter contract — the public extension point for observing a run. Reporters render it to text (the built-in tap/spec/dot/github), write an artifact (junit), or simply collect, which is how the JS API turns a run into a value.

I
ReporterContext

What a reporter is given on every hook: where to write, what the run has counted so far, and the few resolved paths a message needs.

I
RunEndInfo

Final run info; the counts themselves live on config.state.results.counter.

I
RunStartInfo

Run-scope counts. fileCount === null means "counts unknown at this point" (watch mode, where the header is emitted per browser connection rather than per file batch).

I
TestAssertion

One QUnit assertion inside a testEnd payload.

I
TestDetails

The QUnit testEnd payload as it arrives over the WebSocket. Passing tests carry the trimmed { status, fullName, runtime }; failing tests additionally carry assertions.

Type Aliases

T
ReporterName = (REPORTERS)[number]

A valid --reporter value.

Variables

v
REPORTERS: "tap" | "spec" | "dot" | "github"[]

Every stdout reporter --reporter accepts, in help/error-message order. Exactly one is active per run — artifact outputs (--junit, --coverage) are separate additive flags. This module is a leaf (type-only imports), so Args.parse can validate against it without pulling the reporter implementations into the CLI's startup path.