testing

작성자: contentstack

테스트 실행 및 확장 방법 — Mocha 단위, sanity API, Jest TypeScript; 환경 및 목(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.

contentstack의 다른 스킬

cms-assets
contentstack
개발자에게 Contentstack에서 자산을 구성, 전달, 변환하는 방법에 대해 조언합니다. 폴더 구조, Image Delivery API 변환, 게시를 다룹니다...
cms-branches-aliases
contentstack
개발자에게 콘텐츠 개발 격리를 위한 Contentstack 브랜치와 무중단 콘텐츠 배포를 위한 별칭 사용에 대해 조언합니다. 브랜치 전략, …
cms-data-modeling-best-practices
contentstack
개발자들이 Contentstack에서 가장 간단하고 재사용 가능한 구조로 콘텐츠를 모델링하도록 안내합니다. 이 스킬은 콘텐츠 유형, 참조, 전역 필드를 언제 사용해야 하는지 설명합니다.
cms-live-preview-visual-builder-support-assistant
contentstack
Contentstack Live Preview 및 Visual Builder 구현을 진단하고 안내합니다. 미리보기 컨텍스트를 추적하고, 손상된 계약을 식별하며, 다음을 권장합니다…
cms-releases
contentstack
개발자들이 Contentstack Releases를 사용하여 조정되고 원자적인 콘텐츠 배포를 수행하는 방법에 대해 조언합니다. 릴리스 생성, 항목 관리, 단계적 배포 등을 다룹니다. …
cms-roles-permissions
contentstack
개발자들에게 Contentstack에서 역할, 권한, 팀, 토큰 액세스를 설계하는 방법을 조언합니다. 기본 제공 역할, 사용자 지정 역할, 권한 병합 등을 설명합니다.
cms-taxonomy
contentstack
개발자들에게 Contentstack Taxonomy를 구조화되고 계층적인 콘텐츠 분류 및 전달 측 필터링에 사용하는 방법에 대해 조언합니다. 분류 체계와 태그의 차이 등을 다룹니다…
cms-tokens-authentication
contentstack
개발자에게 프론트엔드, 백엔드, 자동화, 타사 앱 사용 사례에 적합한 Contentstack 인증 방법과 토큰 유형 선택에 대해 조언합니다.…