CodeVetter · Repo Unpack · Testing signals
postcss/postcss
Tests and CI were inspected, not executed; no passing result or achieved coverage is asserted. The bounded inspection found uvu unit tests, declaration checks, external parser fixtures, integration testing, and a separate fuzz target. Tests specify important contracts for async ordering, insertion during traversal, deep trees, source-map trust boundaries, and serialization. Coverage configuration excludes a critical map module, and the inspected fuzz harness has limits that prevent treating it as comprehensive validation.
- The inspected unit suites use uvu and uvu/assert; package scripts select test files ending in .test.ts or .test.js, transpile TypeScript without type checking, and run declaration validation separately through check-dts.
- Parser tests compare ASTs against postcss-parser-tests fixtures and assert syntax-error positions; test/integration.js processes real CSS through parse().toResult with map annotations disabled.
- Processor and visitor tests specify sequential async plugin completion, custom parser/stringifier support, dynamically prepared listeners, and parity of inserted-sibling ordering between sync and async walks.
- A 6,000-level parser regression exercises stringify, clone, toJSON/fromJSON, and walk; a separate visitor regression checks synchronous mutation and the second pass over a changed declaration.
- Source-map tests cover rejection of non-.map files, paths outside the CSS directory, and missing from; they also specify unsafeMap opt-out, default/disabled source content, and annotation cleanup in the no-work branch.
- Security-related regressions specify __proto__ rejection during hydration and HTML delimiter escaping across chunks, while explicitly testing custom-stringifier and Document-raw exceptions.
- c8 is configured to require 100% lines for its included scope but excludes lib/map-generator.js; the Jazzer target exercises parse/stringify/JSON/list helpers, accepts CssSyntaxError on reparsing, and its processor branch uses an empty plugin list.
- The inspected CI definition runs the full package test script on Node 26, unit tests on Node 24/22, adapted old-runtime tests on Node 20 through 10, and unit tests on Windows; these are configured jobs, not observed successful runs.