CodeVetter · Repo Unpack · Testing signals
yarnpkg/berry
Tests and CI were inspected, not executed; their existence is not a passing result. The sampled Jest suites exercise project recovery, configuration handling, installation modes, execution precedence, and mocked network behavior. CI defines broader platform and ecosystem checks, but this bounded investigation does not establish exhaustive coverage or current CI status.
- Root test:unit uses Jest 29; its Node environment applies a custom JavaScript/TypeScript transformer and polyfills, excludes acceptance-tests and plugin-compat, and sets a 50-second timeout.
- Acceptance tests have a separate Jest configuration and setup; beforeEach starts the package server and initializes the fixture registry, and test:integration delegates to test:unit with that configuration.
- Project.test.ts asserts Manifest.raw updates, preservation of resolver-specific dependencies during lockfile-only resolution, and recovery after replacing installation state with invalid content.
- Configuration.test.ts checks hideSecrets redaction for both top-level npmAuthToken and scoped tokens; this directly tests formatted access rather than every logging or subprocess exposure path.
- Install acceptance assertions cover inline build logs, SkipBuild suppression without changing PnP artifacts, and immutable refusal to create or alter a lockfile; the inspected ZIP-symlink case excludes Windows.
- Run acceptance tests cover invocation with and without run, script exit-code propagation, delegated yarnPath exit codes, dependency binary execution, and script precedence over binaries.
- The inspected HTTP tests intercept requests through hooks: core checks wrapper arguments, while npm checks registry URL joining and noninteractive OTP failure. These tests do not themselves exercise real TLS, proxies, or live registry authentication.
- Integration CI defines immutable/cache checks and sharded unit/acceptance jobs across Linux, Windows, and macOS; scheduled ecosystem workflows add compatibility checks, but the Webpack thread-loader case immediately exits and is not exercised.