testing

Comment exécuter et étendre les tests — Mocha unit, sanity API, Jest TypeScript ; env et mocks.

npx skills add https://github.com/contentstack/contentstack-management-javascript --skill testing

Testing – Contentstack Management JavaScript SDK

When to use

  • Running npm run test:unit, sanity, or Jest.
  • Adding or changing tests under test/unit/ or test/sanity-check/.
  • Configuring env vars for live CMA sanity runs.

Instructions

Commands (from package.json)

GoalCommand
Lint (pre-test hook)npm run lint
Default npm testRuns test:api then test:unit — confirm test:api exists in your branch; else use test:unit
Unit onlynpm run test:unit — Mocha test/unit/index.js, nyc
Unit JSON reportnpm run test:unit:report:json
Sanity + coveragenpm run test:sanity-test
Sanity, no nycnpm run test:sanity-nocov
TypeScript / Jestnpm run test:typescript

Always npm run build before sanity if dist/node/contentstack-management.js must match lib/ (sanity imports the built artifact).

Unit tests (test/unit/)

  • Mocha + Chai + @babel/register; 30s timeout per script.
  • HTTP: mock with Nock, axios-mock-adapter, or stubs — no live CMA.
  • Suites are required from test/unit/index.js — add new *-test.js files and register them there.

Sanity tests (test/sanity-check/)

  • Live CMA calls; orchestrated by test/sanity-check/sanity.js.
  • Authoritative env list: test/sanity-check/utility/testSetup.js (and sanity.js).

Environment variables

Required (core) — setup fails without: EMAIL, PASSWORD, HOST, ORGANIZATION.

Suite-specific (tests skip or degrade when missing):

AreaVariablesNotes
OAuthCLIENT_ID, APP_ID, REDIRECT_URIoauth-test.js
2FATFA_EMAIL, TFA_PASSWORDuser-test.js
MFAMFA_SECRETuser-test.js
Team / shareMEMBER_EMAILteam-test.js, stack-test.js
DAM 2.0DAM_2_0_ENABLED=trueentry-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 (test/typescript/)

  • jest.config.js: ts-jest, coverage under coverage/.

Hygiene

  • No committed only / skip for CI-needed tests.
  • Never commit real tokens in tests or snapshots.

Plus de skills de contentstack

cms-assets
contentstack
Conseiller les développeurs sur l'organisation, la livraison et la transformation des assets dans Contentstack. Couvrir la structure des dossiers, les transformations de l'API de livraison d'images, la publication…
cms-branches-aliases
contentstack
Conseiller les développeurs sur l'utilisation des branches Contentstack pour le développement de contenu isolé et des alias pour des déploiements de contenu sans temps d'arrêt. Couvrir la stratégie de branche,…
cms-data-modeling-best-practices
contentstack
Guidez les développeurs pour modéliser le contenu dans Contentstack en utilisant la structure réutilisable la plus simple. La compétence explique quand utiliser les types de contenu, les références, les éléments globaux…
cms-live-preview-visual-builder-support-assistant
contentstack
Diagnostiquer et guider les implémentations de Contentstack Live Preview et Visual Builder. Retracer le contexte d'aperçu, identifier le contrat rompu et recommander le…
cms-releases
contentstack
Conseiller les développeurs sur l'utilisation de Contentstack Releases pour un déploiement coordonné et atomique de contenu. Couvrir la création de releases, la gestion des éléments, le déploiement par étapes,…
cms-roles-permissions
contentstack
Conseiller les développeurs sur la conception des rôles, des permissions, des équipes et de l'accès par jeton dans Contentstack. Expliquer les rôles intégrés, les rôles personnalisés, la fusion des permissions,…
cms-taxonomy
contentstack
Conseiller les développeurs sur l'utilisation de Contentstack Taxonomy pour la classification structurée et hiérarchique du contenu et le filtrage côté livraison. Couvre la taxonomie par rapport aux balises,…
cms-tokens-authentication
contentstack
Conseiller les développeurs sur le choix de la méthode d'authentification Contentstack et du type de jeton adaptés aux cas d'utilisation frontend, backend, d'automatisation et d'applications tierces.…