CodeVetter · Repo Unpack · Testing signals
strapi/strapi
Tests and CI were inspected, not executed; test existence does not establish a passing result. Jest remains central, with separate Vitest projects and Playwright browser suites. Inspected API tests assert persisted document behavior, while authentication unit tests use mocked database/session dependencies. CI configuration shows conditional execution, multiple runtime/database targets, and explicit browser-coverage limitations; no comprehensive coverage measurement was performed.
- The Jest unit preset selects __tests__ files, transforms through SWC, excludes .vitest.test.ts, and disables coverage unless requested. Core's Jest config specializes discovery to *.test.ts.
- Vitest has a root project aggregator and a core package config merged with the shared unit preset. CI invokes yarn test:unit:vitest separately from Nx/Jest unit tests, so these are distinct inspected test lanes.
- API tests use Jest's Node environment and *.api.js/ts discovery. Inspected create tests build fixtures, call strapi.documents, and check database row count, default/explicit locales, draft status, published creation, and ignored caller-supplied publishedAt.
- Inspected publish API tests assert creator-field presence, equal draft/published locale counts, and no extra published variants after publishing twice. These source assertions cover selected variant persistence properties, but were not run during this investigation.
- JWT tests mock configuration, session manager, and database calls, exercising refresh issuance and error cases. Auth-session controller tests assert refresh-only availability, authentication requirements, and sanitized/current-session output; these mocks do not themselves validate real cookie transport or database integration.
- Frontend Jest uses admin-test-utils setup/environment and SWC transforms. Playwright create-content specs reset/import fixtures, log in, save/publish content, and reorder components; base configuration uses one worker, CI retries, and trace capture on first retry.
- CI builds on Node 22/24/26, uses path-filter outputs and Nx affected targets for selected checks, and defines sharded PostgreSQL/MySQL API jobs. These workflow definitions were inspected rather than executed or checked against run history.
- Shared CE E2E jobs span Chromium/WebKit/Firefox, but current and legacy media-library jobs explicitly select Chromium. Workflow comments identify WebKit drag/drop helper limitations, unknown Firefox media-suite behavior, and parked folder drag/drop specs; raw E2E failure handling also depends on the Trunk upload outcome.