CodeVetter · Repo Unpack · Contributor handoff
jasmine/jasmine
Start with the source/distribution distinction and the two-copy self-test model before changing behavior. Preserve public API compatibility, browser independence in core, scoped cleanup, and reporter event contracts. Tests and CI were inspected, not executed; this handoff describes future verification options subject to authorization, and the inventory is bounded rather than exhaustive.
- Read package.json, the contribution guide, and buildDistribution before editing: src is authoritative implementation, lib is distributed/self-testing output, and the guide requests rebuilding for validation then reverting generated jasmine.js/jasmine-html.js changes.
- Keep environment-independent changes in src/core and document-dependent code in src/html; the contribution guide requires public-interface caution and graceful cross-environment behavior.
- For scheduling changes, read Env.runQueue, Runner, TreeRunner, QueueRunner, and matching specs together; Env injects captured real timers, while TreeRunner chooses hook queues and skip policies.
- Use jasmineUnderTest/privateUnderTest for source assertions, with jasmine supplying test infrastructure; cleanup_ and resetEnv prevent environment/global-listener leakage between self-tests.
- Preserve repeat-run semantics: autoCleanClosures defaults true and clears spec functions; repeated execution requires disabling it, whereas parallelReset removes prior children and preserves top-level hooks.
- Preserve reporter serialization and lifecycle contracts: properties are validated through structuredClone plus JSON.stringify, events are cloned per reporter, and clearing resources precedes specDone.
- When execution is authorized, repository verification options are npm test, npm run test:parallel, npm run build, and browser serve/CI with JASMINE_BROWSER; Node selection excludes HTML specs, and package specs invoke shells/write artifacts. None of these tests or CI jobs was executed during this inspection.
- Investigate the standalone boot0.js mismatch and ignored ci:performance argument before relying on those workflows; use the inspected script bodies rather than assuming historical documentation or command names establish current behavior.