# Testing signals — puppeteer/puppeteer

> Canonical page: https://codevetter.com/unpack/puppeteer/testing-signals

# Testing signals — puppeteer/puppeteer

Scanned commit 2e45a3af43231cd658285e4da5e7f53e40f24edf (2026-10-02). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

Tests and CI were inspected, not executed; no passing result is asserted. Browser integration tests use Mocha with shared fixtures and a custom expectation-aware runner, while colocated unit tests use node:test. Inspected tests substantiate navigation, screenshot, provider, extraction, configuration, and cleanup coverage. Coverage observations are bounded: expected failures, skipped tests, weak assertions, and CI exclusions limit what test existence establishes.
- Integration tests use Mocha describe/it and expect assertions; .mocharc loads compiled fixtures, enables async-only tests, and configures three retries under CI. — [test/src/navigation.test.ts#L9-L30](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/test/src/navigation.test.ts#L9-L30) [.mocharc.js#L7-L24](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/.mocharc.js#L7-L24)
- Colocated BrowserLauncher unit tests use node:test and verify synchronous profile removal, cleanup unregistration, and one shared exit listener for multiple profiles. — [packages/puppeteer-core/src/node/BrowserLauncher.test.ts#L10-L14](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/packages/puppeteer-core/src/node/BrowserLauncher.test.ts#L10-L14) [packages/puppeteer-core/src/node/BrowserLauncher.test.ts#L43-L92](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/packages/puppeteer-core/src/node/BrowserLauncher.test.ts#L43-L92) [packages/puppeteer-core/package.json#L124-L128](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/packages/puppeteer-core/package.json#L124-L128)
- The runner interprets TestSuites/TestExpectations; FAIL and TIMEOUT may be acceptable outcomes, SKIP normally marks matching tests pending unless focused .only selection bypasses that branch, and later matching expectations override earlier ones. — [tools/mocha-runner/README.md#L3-L4](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/tools/mocha-runner/README.md#L3-L4) [tools/mocha-runner/README.md#L44-L53](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/tools/mocha-runner/README.md#L44-L53) [test/TestExpectations.json#L1-L42](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/test/TestExpectations.json#L1-L42) [tools/mocha-runner/src/mocha-runner.ts#L147-L150](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/tools/mocha-runner/src/mocha-runner.ts#L147-L150) [tools/mocha-runner/src/utils.ts#L125-L131](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/tools/mocha-runner/src/utils.ts#L125-L131) [tools/mocha-runner/src/utils.ts#L191-L260](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/tools/mocha-runner/src/utils.ts#L191-L260) [tools/mocha-runner/src/interface.ts#L156-L188](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/tools/mocha-runner/src/interface.ts#L156-L188)
- Navigation tests cover anchors, redirects, about:blank, history changes, lifecycle selection, 204 responses, and recovery after a network error. — [test/src/navigation.test.ts#L25-L130](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/test/src/navigation.test.ts#L25-L130)
- Screenshot tests compare golden images for clipping, offscreen capture, parallel captures, and full-page captures; the viewport-changing branch checks restoration. — [test/src/screenshot.test.ts#L24-L118](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/test/src/screenshot.test.ts#L24-L118)
- Provider tests exercise fallback and aggregated errors, but the inspected fixture test accepts either success or selected failures and does not establish successful custom-browser launch. — [packages/browsers/test/src/installWithProviders.test.ts#L87-L129](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/packages/browsers/test/src/installWithProviders.test.ts#L87-L129) [packages/browsers/test/src/installWithProviders.test.ts#L133-L210](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/packages/browsers/test/src/installWithProviders.test.ts#L133-L210)
- Archive tests exercise tar and ZIP contents, yauzl permissions, symlink preservation, and escaping-symlink rejection; symlink preservation is explicitly skipped on Windows. — [packages/browsers/test/src/fileUtil.test.ts#L117-L179](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/packages/browsers/test/src/fileUtil.test.ts#L117-L179)
- CI defines build/lint/docs/type checks, sharded Chrome/Firefox suites, installation and unit jobs; ordinary PRs narrow OS coverage and exclude some Chrome configurations, so inspecting these definitions establishes intended checks rather than executed results. — [.github/workflows/ci.yml#L39-L69](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/.github/workflows/ci.yml#L39-L69) [.github/workflows/ci.yml#L76-L110](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/.github/workflows/ci.yml#L76-L110) [.github/workflows/ci.yml#L165-L191](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/.github/workflows/ci.yml#L165-L191) [.github/workflows/ci.yml#L244-L264](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/.github/workflows/ci.yml#L244-L264) [.github/workflows/ci.yml#L352-L371](https://github.com/puppeteer/puppeteer/blob/2e45a3af43231cd658285e4da5e7f53e40f24edf/.github/workflows/ci.yml#L352-L371)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
