# Testing signals — web-infra-dev/rspack

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

# Testing signals — web-infra-dev/rspack

Scanned commit 179a0934f3091463419827fc2767af07b2fd38ed (2026-10-01). 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 claimed. The inspected harness uses Rstest through rs test, Playwright integration for browser behavior, TypeScript checks, and Rust tests. It includes explicit exclusions and opt-in compatibility suites that limit what a default run establishes. This was bounded source inspection, not exhaustive coverage analysis.
- The integration package uses rs test with base and hottest projects; the Rstest configuration supplies shared setup files, globals, snapshot formatting, and three retries in CI. — [tests/rspack-test/package.json#L9-14](https://github.com/web-infra-dev/rspack/blob/179a0934f3091463419827fc2767af07b2fd38ed/tests/rspack-test/package.json#L9-L14) [tests/rspack-test/rstack.config.mts#L15-19](https://github.com/web-infra-dev/rspack/blob/179a0934f3091463419827fc2767af07b2fd38ed/tests/rspack-test/rstack.config.mts#L15-L19) [tests/rspack-test/rstack.config.mts#L81-110](https://github.com/web-infra-dev/rspack/blob/179a0934f3091463419827fc2767af07b2fd38ed/tests/rspack-test/rstack.config.mts#L81-L110)
- NewCache.test.mjs defaults to newCacheCases; normalCases/configCases compatibility runs require NEW_CACHE_CASES selection, and the cache processor asserts cache-stat snapshots and expected unchanged-build hit rates. — [tests/rspack-test/NewCache.test.mjs#L4-16](https://github.com/web-infra-dev/rspack/blob/179a0934f3091463419827fc2767af07b2fd38ed/tests/rspack-test/NewCache.test.mjs#L4-L16) [tests/rspack-test/NewCache.test.mjs#L39-65](https://github.com/web-infra-dev/rspack/blob/179a0934f3091463419827fc2767af07b2fd38ed/tests/rspack-test/NewCache.test.mjs#L39-L65) [packages/rspack-test-tools/src/case/cache.ts#L99-130](https://github.com/web-infra-dev/rspack/blob/179a0934f3091463419827fc2767af07b2fd38ed/packages/rspack-test-tools/src/case/cache.ts#L99-L130)
- The new-cache runner explicitly excludes max-age, restored loader diagnostics, coffee-loader, extract-amd, restored async-block binding access, and stateful rebuild-module cases; its comments describe unfinished compatibility. — [tests/rspack-test/NewCache.test.mjs#L19-36](https://github.com/web-infra-dev/rspack/blob/179a0934f3091463419827fc2767af07b2fd38ed/tests/rspack-test/NewCache.test.mjs#L19-L36)
- Incremental-watch testing reuses watchCases through createWatchIncrementalCase; native watcher tests run in a separate project with retry:0 and maxConcurrency:1. — [tests/rspack-test/Incremental-watch.test.mjs#L7-23](https://github.com/web-infra-dev/rspack/blob/179a0934f3091463419827fc2767af07b2fd38ed/tests/rspack-test/Incremental-watch.test.mjs#L7-L23) [tests/rspack-test/rstack.config.mts#L148-169](https://github.com/web-infra-dev/rspack/blob/179a0934f3091463419827fc2767af07b2fd38ed/tests/rspack-test/rstack.config.mts#L148-L169)
- Browser E2E uses @rstest/playwright configuration; the inspected cross-origin lazy-compilation test clicks a dynamic-import trigger and asserts a rendered component plus a text/plain POST request. — [tests/e2e/config.ts#L16-37](https://github.com/web-infra-dev/rspack/blob/179a0934f3091463419827fc2767af07b2fd38ed/tests/e2e/config.ts#L16-L37) [tests/e2e/cases/lazy-compilation/cross-origin/index.test.ts#L118-156](https://github.com/web-infra-dev/rspack/blob/179a0934f3091463419827fc2767af07b2fd38ed/tests/e2e/cases/lazy-compilation/cross-origin/index.test.ts#L118-L156)
- API type tests invoke tsc --noEmit separately for bundler and NodeNext module-resolution configurations, providing compile-time checks rather than runtime behavior tests. — [tests/type-tests/package.json#L5-11](https://github.com/web-infra-dev/rspack/blob/179a0934f3091463419827fc2767af07b2fd38ed/tests/type-tests/package.json#L5-L11)
- Inspected Rust snapshot tests use tokio::test for unchanged and changed filesystem states; Rust CI runs codegen, Clippy, formatting, workspace tests with exclusions, and separate watcher jobs. — [crates/rspack_core/src/new_cache/snapshot/file_system_info/tests/hash.rs#L6-31](https://github.com/web-infra-dev/rspack/blob/179a0934f3091463419827fc2767af07b2fd38ed/crates/rspack_core/src/new_cache/snapshot/file_system_info/tests/hash.rs#L6-L31) [.github/workflows/reusable-rust-test.yml#L56-65](https://github.com/web-infra-dev/rspack/blob/179a0934f3091463419827fc2767af07b2fd38ed/.github/workflows/reusable-rust-test.yml#L56-L65) [.github/workflows/reusable-rust-test.yml#L108-142](https://github.com/web-infra-dev/rspack/blob/179a0934f3091463419827fc2767af07b2fd38ed/.github/workflows/reusable-rust-test.yml#L108-L142)
- JS CI downloads binding artifacts and invokes test:ci on supported targets; WASM runs use WASM=1, but the harness excludes cache, incremental, native watcher, and several API/stat suites under WASM. — [.github/workflows/reusable-build-test.yml#L123-145](https://github.com/web-infra-dev/rspack/blob/179a0934f3091463419827fc2767af07b2fd38ed/.github/workflows/reusable-build-test.yml#L123-L145) [.github/workflows/reusable-build-test.yml#L183-191](https://github.com/web-infra-dev/rspack/blob/179a0934f3091463419827fc2767af07b2fd38ed/.github/workflows/reusable-build-test.yml#L183-L191) [tests/rspack-test/rstack.config.mts#L21-44](https://github.com/web-infra-dev/rspack/blob/179a0934f3091463419827fc2767af07b2fd38ed/tests/rspack-test/rstack.config.mts#L21-L44) [package.json#L45-46](https://github.com/web-infra-dev/rspack/blob/179a0934f3091463419827fc2767af07b2fd38ed/package.json#L45-L46)

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)
