Files
jasmine/AGENTS.md

49 lines
1.8 KiB
Markdown

# 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)