Files
jasmine/AGENTS.md
Warren dfb2dbba7c
Some checks failed
Test in latest available Safari / build (push) Failing after 6m25s
Add artist website and portfolio files with LFS
2026-05-25 13:50:38 +08:00

1.8 KiB

Jasmine Core Development Notes

Architecture

  • This is the main jasmine-core repository, a JavaScript BDD testing framework
  • Directory structure:
    • src/ - source code
      • src/core/ - environment-agnostic core functionality
      • src/html/ - browser-specific code
      • src/boot/ - boot files for browser setup
    • spec/ - tests, mirrors the src directory structure
    • lib/ - compiled distribution files (built, not checked in modified)

Key Development Commands

  • npm install - install dependencies
  • npm test - run all tests in Node.js + lint + prettier check
  • npm run test:parallel - run tests in parallel
  • npm run build - build distribution to /lib
  • npm run cleanup - auto-fix prettier errors
  • npm run serve - serve tests for browser testing at http://localhost:8888
  • JASMINE_BROWSER=<name> npm run ci - run browser tests via Selenium

Before submitting PR

  1. Run tests in Node.js AND browsers: npm test and npm run serve
  2. Fix any eslint/prettier errors: npm run cleanup
  3. Build lib/ with npm run build and re-test
  4. Revert changes to built files in lib/ - maintainers will rebuild when merging

Testing Conventions

  • Jasmine self-tests: lib/jasmine-core.js provides jasmine (runner), src/ provides jasmineUnderTest (code under test)
  • Always use jasmineUnderTest for objects/functions being tested

Coding Conventions

  • Single quotes, semicolons required
  • Curly braces required for all control statements
  • ECMA 2022 syntax, commonjs modules
  • Core code must stay environment-agnostic:
    • Keep browser-specific code in src/html/
    • Degrade gracefully when environment-specific features aren't available

Supported Environments

  • Node: 20, 22, 24
  • Browsers: Safari 26+, Chrome/Firefox/Edge (evergreen)