| name | testing |
|---|---|
| description | How to run and extend tests — Mocha unit, sanity API, Jest TypeScript; env and mocks. |
- Running
npm run test:unit, sanity, or Jest. - Adding or changing tests under
test/unit/ortest/sanity-check/. - Configuring env vars for live CMA sanity runs.
| Goal | Command |
|---|---|
| Lint (pre-test hook) | npm run lint |
Default npm test |
Runs test:api then test:unit — confirm test:api exists in your branch; else use test:unit |
| Unit only | npm run test:unit — Mocha test/unit/index.js, nyc |
| Unit JSON report | npm run test:unit:report:json |
| Sanity + coverage | npm run test:sanity-test |
| Sanity, no nyc | npm run test:sanity-nocov |
| TypeScript / Jest | npm run test:typescript |
Always npm run build before sanity if dist/node/contentstack-management.js must match lib/ (sanity imports the built artifact).
- Mocha + Chai + @babel/register; 30s timeout per script.
- HTTP: mock with Nock, axios-mock-adapter, or stubs — no live CMA.
- Suites are
required fromtest/unit/index.js— add new*-test.jsfiles and register them there.
- Live CMA calls; orchestrated by
test/sanity-check/sanity.js. - Authoritative env list:
test/sanity-check/utility/testSetup.js(andsanity.js).
Required (core) — setup fails without: EMAIL, PASSWORD, HOST, ORGANIZATION.
Suite-specific (tests skip or degrade when missing):
| Area | Variables | Notes |
|---|---|---|
| OAuth | CLIENT_ID, APP_ID, REDIRECT_URI |
oauth-test.js |
| 2FA | TFA_EMAIL, TFA_PASSWORD |
user-test.js |
| MFA | MFA_SECRET |
user-test.js |
| Team / share | MEMBER_EMAIL |
team-test.js, stack-test.js |
| DAM 2.0 | DAM_2_0_ENABLED=true |
entry-test.js |
Optional: PERSONALIZE_HOST, DELETE_DYNAMIC_RESOURCES (defaults in setup). Set HOST to your CMA API host.
Runtime: setup assigns API_KEY, AUTHTOKEN, MANAGEMENT_TOKEN, etc. — do not commit those.
jest.config.js:ts-jest, coverage undercoverage/.
- No committed
only/skipfor CI-needed tests. - Never commit real tokens in tests or snapshots.