# Testing signals — withastro/astro

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

# Testing signals — withastro/astro

Scanned commit 4c1470a7f907fe678ef5e7dceaa972ca83d297da (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; a test's existence is not a passing result. Core tests use node:test with built dist imports, while browser tests use Playwright and benchmark tooling uses Vitest. Inspected cases cover persistence, action behavior, origin-check composition, provider finalization, and hydration recovery. CI defines lint, type, cross-platform test, browser, smoke, and benchmark jobs. Inspection was bounded, so coverage completeness and untested repository-wide behavior remain unestablished.
- Core unit-test guidance requires node:test and node:assert/strict, placement under package test/units, and imports from built dist output. — [reference/unit-testing.md#L5-16](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/reference/unit-testing.md#L5-L16)
- Astro's test script runs unit, integration, and type suites; unit tests use strip-types and teardown, integration tests use parallel execution, and browser suites run Chrome and Firefox configurations. — [packages/astro/package.json#L115-124](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/packages/astro/package.json#L115-L124)
- astro-scripts test uses node:test.run(), supports match/only/parallel/setup/teardown options, and selects process isolation for parallel tests versus no isolation for sequential tests. — [scripts/cmd/test.js#L14-39](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/scripts/cmd/test.js#L14-L39) [scripts/cmd/test.js#L112-130](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/scripts/cmd/test.js#L112-L130)
- Store-persistence tests assert restored data after updates and include chunked entry records crossing part boundaries. — [packages/astro/test/units/content-layer/store-persistence.test.ts#L14-35](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/packages/astro/test/units/content-layer/store-persistence.test.ts#L14-L35) [packages/astro/test/units/content-layer/store-persistence.test.ts#L221-238](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/packages/astro/test/units/content-layer/store-persistence.test.ts#L221-L238)
- Action integration tests create a fixture with a unique outDir, start dev, build a test-adapter app, and assert invalid direct invocation and form-action page results. — [packages/astro/test/actions.test.ts#L10-28](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/packages/astro/test/actions.test.ts#L10-L28) [packages/astro/test/actions.test.ts#L54-81](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/packages/astro/test/actions.test.ts#L54-L81)
- Action origin tests mount Hono actions() before middleware() and assert that cross-origin requests return 403 without executing the action, while same-origin requests execute it. — [packages/astro/test/units/actions/action-origin-check.test.ts#L66-104](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/packages/astro/test/units/actions/action-origin-check.test.ts#L66-L104)
- Endpoint origin tests mount pages() without middleware() and assert cross-origin rejection before endpoint execution; provider-finalization tests assert a 500 when a finalizer rejects. — [packages/astro/test/units/hono/pages-origin-check.test.ts#L42-80](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/packages/astro/test/units/hono/pages-origin-check.test.ts#L42-L80) [packages/astro/test/units/fetch/provider-finalize.test.ts#L6-28](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/packages/astro/test/units/fetch/provider-finalize.test.ts#L6-L28)
- Playwright hydration tests abort the first component import and assert recovery without reload; persistent failure tests assert one hydration-error event and no page errors. — [packages/astro/e2e/astro-island-hydration-error.test.ts#L40-70](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/packages/astro/e2e/astro-island-hydration-error.test.ts#L40-L70) [packages/astro/e2e/astro-island-hydration-error.test.ts#L73-101](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/packages/astro/e2e/astro-island-hydration-error.test.ts#L73-L101)
- CI's Astro/integration matrix covers Ubuntu with Node 22 and 24, and macOS/Windows with Node 24 after explicit exclusions; separate jobs execute E2E and smoke scripts. — [.github/workflows/ci.yml#L153-175](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/.github/workflows/ci.yml#L153-L175) [.github/workflows/ci.yml#L285-322](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/.github/workflows/ci.yml#L285-L322) [.github/workflows/ci.yml#L324-334](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/.github/workflows/ci.yml#L324-L334) [.github/workflows/ci.yml#L391-395](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/.github/workflows/ci.yml#L391-L395)
- CI includes Biome, lint:ci, publint, and typecheck; Linux ts-plugin test failures are converted to warnings, so that step is not a strict passing gate. — [.github/workflows/ci.yml#L99-111](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/.github/workflows/ci.yml#L99-L111) [.github/workflows/ci.yml#L140-151](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/.github/workflows/ci.yml#L140-L151) [.github/workflows/ci.yml#L274-279](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/.github/workflows/ci.yml#L274-L279)
- Example diagnostics run test:check-examples; continuous benchmarks build benchmark projects and invoke Vitest benches through CodSpeed in four shards, which establishes configured measurement infrastructure but no observed performance result. — [.github/workflows/check.yml#L47-57](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/.github/workflows/check.yml#L47-L57) [benchmark/package.json#L9-11](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/benchmark/package.json#L9-L11) [.github/workflows/continuous_benchmark.yml#L31-35](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/.github/workflows/continuous_benchmark.yml#L31-L35) [.github/workflows/continuous_benchmark.yml#L52-67](https://github.com/withastro/astro/blob/4c1470a7f907fe678ef5e7dceaa972ca83d297da/.github/workflows/continuous_benchmark.yml#L52-L67)

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)
