Skip to content

Conversation

@nclsndr
Copy link
Contributor

@nclsndr nclsndr commented Jan 28, 2026

What does it do?

  • Adds vitest-config in packages/utils/vitest-config/ as a private shared Vitest config:

    • Unit preset with globals: false (explicit describe/it/expect/vi imports), environment: 'node', include: ['**/*.vitest.test.ts'], testTimeout: 5000, and exclusions aligned with the Jest unit setup.
  • Integrates Vitest in packages/core/core/:

    • vitest.config.ts that merges the unit preset with package-specific.
    • Scripts: test:unit:vitest (run once) and test:unit:vitest:watch (watch).
    • Dev deps: vitest, vitest-config.
  • Root-level scripts (in root package.json):

    • test:unit:vitest and test:unit:vitest:watch that run Vitest via packages/core/core/vitest.config.ts.
  • Centralized Vitest version:

    • Root package.json: vitest in devDependencies, and vitest: "4.0.18" in resolutions so the whole monorepo uses the same version.
  • CI (.github/workflows/tests.yml):

    • New job unit_back_vitest (Node 20/22/24), same conditions as unit_back, runs yarn test:unit:vitest.
  • Docs:

    • VITEST_MIGRATION.md with setup overview, migration steps (Jest → Vitest, *.vitest.test.ts), and dependency/version strategy.

Why is it needed?

  • Modernize the test stack by introducing Vitest (faster, ESM-friendly, Vite-based) alongside Jest.
  • Allow incremental migration via the *.vitest.test.ts pattern so existing *.test.ts Jest tests keep running while new or migrated tests use Vitest.
  • Pin a single Vitest version (4.0.18) via resolutions so every package uses the same runner and upgrades are done in one place.

How to test it?

  1. Install and run Vitest
    From repo root:

    yarn install
    yarn test:unit:vitest

    Expected: Vitest runs and exits successfully

  2. Run from core package

    cd packages/core/core && yarn test:unit:vitest

    Expected: Vitest runs and exits successfully

  3. Watch mode

    yarn test:unit:vitest:watch

    And

    cd packages/core/core && yarn test:unit:vitest:watch

    Confirm Vitest starts in watch mode (Ctrl+C to stop).

  4. Vitest version

    yarn vitest --version

    Expected: vitest/4.0.18 ….

  5. Jest still works

    yarn test:unit

    Existing Jest unit tests should run unchanged.

Environment: Node 20–24, macOS/Linux. No extra env vars needed for the above.

Related issue(s)/PR(s)

None.

@nclsndr nclsndr self-assigned this Jan 28, 2026
@nclsndr nclsndr added source: tooling Source is GitHub tooling/tests/ect pr: chore This PR contains chore tasks (cleanups, configs, tooling...) labels Jan 28, 2026
@vercel
Copy link

vercel bot commented Jan 28, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
contributor-docs Ready Ready Preview, Comment Jan 29, 2026 3:31pm

Request Review

@github-actions
Copy link
Contributor

github-actions bot commented Jan 28, 2026

Size Change: 0 B

Total Size: 2.69 MB

ℹ️ View Unchanged
Filename Size
examples/getstarted/build/_baseEach-*********** 258 B
examples/getstarted/build/_baseMap-*********** 192 B
examples/getstarted/build/AdminSeatInfo-*********** 833 B
examples/getstarted/build/AIUsage-*********** 702 B
examples/getstarted/build/apiTokens-*********** 466 B
examples/getstarted/build/App-*********** 542 B
examples/getstarted/build/ApplicationInfoPage-*********** 4.4 kB
examples/getstarted/build/ar.json-*********** 5.38 kB
examples/getstarted/build/AuthenticatedLayout-*********** 59.3 kB
examples/getstarted/build/AuthResponse-*********** 421 B
examples/getstarted/build/ca.json-*********** 3.76 kB
examples/getstarted/build/CardDragPreview-*********** 585 B
examples/getstarted/build/cloneDeep-*********** 140 B
examples/getstarted/build/ColorPickerInput-*********** 4.23 kB
examples/getstarted/build/ComponentConfigurationPage-*********** 1.52 kB
examples/getstarted/build/ConfigureTheView-*********** 1.7 kB
examples/getstarted/build/constants-*********** 72 B
examples/getstarted/build/CreateActionEE-*********** 512 B
examples/getstarted/build/CreatePage-*********** 252 B
examples/getstarted/build/CreateView-*********** 304 B
examples/getstarted/build/cs.json-*********** 338 B
examples/getstarted/build/de.json-*********** 1.92 kB
examples/getstarted/build/dk.json-*********** 3.6 kB
examples/getstarted/build/dummy-preview-*********** 3.06 kB
examples/getstarted/build/EditConfigurationPage-*********** 1.08 kB
examples/getstarted/build/EditPage-*********** 1.9 kB
examples/getstarted/build/EditView-*********** 2.02 kB
examples/getstarted/build/EditViewPage-*********** 5.26 kB
examples/getstarted/build/en-*********** 74 B
examples/getstarted/build/en-GB-*********** 14.4 kB
examples/getstarted/build/en.json-*********** 381 B
examples/getstarted/build/es-*********** 74 B
examples/getstarted/build/es.json-*********** 4.28 kB
examples/getstarted/build/eu.json-*********** 10.4 kB
examples/getstarted/build/EventsTable-*********** 390 B
examples/getstarted/build/FieldTypeIcon-*********** 460 B
examples/getstarted/build/Form-*********** 5.3 kB
examples/getstarted/build/fr.json-*********** 794 B
examples/getstarted/build/getActionTypesDefaultMessages-*********** 500 B
examples/getstarted/build/getTrad-*********** 383 B
examples/getstarted/build/gu.json-*********** 4.48 kB
examples/getstarted/build/he.json-*********** 1.63 kB
examples/getstarted/build/hi.json-*********** 11.1 kB
examples/getstarted/build/History-*********** 6.25 kB
examples/getstarted/build/HomePage-*********** 241 B
examples/getstarted/build/hooks-*********** 92 B
examples/getstarted/build/hu.json-*********** 3.98 kB
examples/getstarted/build/id-*********** 7.53 kB
examples/getstarted/build/id.json-*********** 1.39 kB
examples/getstarted/build/index-*********** 3.1 kB
examples/getstarted/build/index.html 593 B
examples/getstarted/build/InstalledPlugins-*********** 780 B
examples/getstarted/build/isNil-*********** 123 B
examples/getstarted/build/it.json-*********** 15.3 kB
examples/getstarted/build/ja.json-*********** 1.41 kB
examples/getstarted/build/ko.json-*********** 5.2 kB
examples/getstarted/build/layout-*********** 3.32 kB
examples/getstarted/build/Layout-*********** 2.54 kB
examples/getstarted/build/ListConfigurationPage-*********** 4.23 kB
examples/getstarted/build/ListPage-*********** 1.92 kB
examples/getstarted/build/ListView-*********** 1.37 kB
examples/getstarted/build/ListViewPage-*********** 6.49 kB
examples/getstarted/build/Login-*********** 463 B
examples/getstarted/build/MagicLinkEE-*********** 389 B
examples/getstarted/build/ml.json-*********** 11.3 kB
examples/getstarted/build/ModalForm-*********** 243 B
examples/getstarted/build/ms.json-*********** 1.18 kB
examples/getstarted/build/nl.json-*********** 10.6 kB
examples/getstarted/build/no.json-*********** 5.47 kB
examples/getstarted/build/NoContentTypePage-*********** 454 B
examples/getstarted/build/NoPermissionsPage-*********** 232 B
examples/getstarted/build/Permissions-*********** 9.95 kB
examples/getstarted/build/pl.json-*********** 2.09 kB
examples/getstarted/build/PrivateRoute-*********** 250 B
examples/getstarted/build/ProfilePage-*********** 2.48 kB
examples/getstarted/build/pt-BR.json-*********** 1.12 kB
examples/getstarted/build/pt.json-*********** 1.51 kB
examples/getstarted/build/purchase-review-workflows-*********** 66.3 kB
examples/getstarted/build/PurchaseAuditLogs-*********** 70.5 kB
examples/getstarted/build/PurchaseContentHistory-*********** 80.9 kB
examples/getstarted/build/PurchaseContentReleases-*********** 55.9 kB
examples/getstarted/build/PurchaseSingleSignOn-*********** 25 kB
examples/getstarted/build/RelativeTime-*********** 397 B
examples/getstarted/build/ReleasesPage-*********** 4.1 kB
examples/getstarted/build/ReleasesSettingsPage-*********** 1.52 kB
examples/getstarted/build/router-*********** 400 B
examples/getstarted/build/ru-*********** 91 B
examples/getstarted/build/ru.json-*********** 241 B
examples/getstarted/build/sa.json-*********** 11.2 kB
examples/getstarted/build/schemas-*********** 3.16 kB
examples/getstarted/build/SearchInput-*********** 571 B
examples/getstarted/build/selectors-*********** 111 B
examples/getstarted/build/SelectRoles-*********** 1.03 kB
examples/getstarted/build/set-*********** 1.36 kB
examples/getstarted/build/Settings-*********** 1.62 kB
examples/getstarted/build/SettingsPage-*********** 3.77 kB
examples/getstarted/build/SingleSignOnPage-*********** 1.8 kB
examples/getstarted/build/sk.json-*********** 748 B
examples/getstarted/build/sortable.esm-*********** 16.6 kB
examples/getstarted/build/SSOProviders-*********** 755 B
examples/getstarted/build/strapi-*********** 1.92 MB
examples/getstarted/build/strapi-************ 844 B
examples/getstarted/build/sv.json-*********** 3.69 kB
examples/getstarted/build/Table-*********** 1.29 kB
examples/getstarted/build/th.json-*********** 3.28 kB
examples/getstarted/build/toInteger-*********** 3.3 kB
examples/getstarted/build/TokenTypeSelect-*********** 122 kB
examples/getstarted/build/tr-*********** 83 B
examples/getstarted/build/tr.json-*********** 1.02 kB
examples/getstarted/build/transferTokens-*********** 505 B
examples/getstarted/build/uk-*********** 91 B
examples/getstarted/build/uk.json-*********** 3.32 kB
examples/getstarted/build/upperFirst-*********** 652 B
examples/getstarted/build/useAdminRoles-*********** 244 B
examples/getstarted/build/UseCasePage-*********** 1.37 kB
examples/getstarted/build/useDragLayer-*********** 181 B
examples/getstarted/build/useLicenseLimitNotification-*********** 712 B
examples/getstarted/build/useReviewWorkflows-*********** 1.33 kB
examples/getstarted/build/users-*********** 352 B
examples/getstarted/build/useWebhooks-*********** 646 B
examples/getstarted/build/validation-*********** 534 B
examples/getstarted/build/vi.json-*********** 1.41 kB
examples/getstarted/build/WidgetHelpers-*********** 520 B
examples/getstarted/build/Widgets-*********** 1.08 kB
examples/getstarted/build/zh-Hans.json-*********** 2.92 kB
examples/getstarted/build/zh.json-*********** 1.09 kB

compressed-size-action

@trunk-io
Copy link

trunk-io bot commented Jan 28, 2026

Static BadgeStatic BadgeStatic BadgeStatic Badge

View Full Report ↗︎Docs

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Example files migrated to prove the scripts and workflow

@nclsndr nclsndr force-pushed the chore/introduce-vitest branch from 4f1dde7 to 3918c33 Compare January 29, 2026 15:28
@nclsndr nclsndr marked this pull request as ready for review January 29, 2026 15:28
@dosubot
Copy link

dosubot bot commented Jan 29, 2026

Related Documentation

Checked 2 published document(s) in 1 knowledge base(s). No updates required.

How did I do? Any feedback?  Join Discord

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr: chore This PR contains chore tasks (cleanups, configs, tooling...) source: tooling Source is GitHub tooling/tests/ect

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants