Skip to content
Meeko
Type to search the guides and the API reference. Open it from any page with / or Ctrl K; move with the arrow keys and open a result with Enter.
Get started
On this page

Testing and distribution

Preparation and types#

Run from the root with Node.js 24+ and pnpm 12.14.0:

sh
pnpm install --frozen-lockfile
pnpm build
pnpm lint
pnpm check
pnpm check:apps

The build prepares the five public packages, the private documentation base and their dist/ entry points, including those imported by eslint.config.ts. This is why it precedes linting in a clean checkout. check checks the packages and check:apps checks the public framework, UI and i18n websites.

Tests by category#

Category Command Scope
Core pnpm test Compiler, SSR, hydration, framework and runtime.
Packages pnpm test:packages UI, i18n and ESLint/Prettier plugins, using the previous build.
Extended verification pnpm verify Core, examples, test types, Vite and DevTools.
Core browser pnpm e2e Engine interactions and hydration.
UI browser pnpm -F @meekojs/ui test:e2e UI website, Container, cards, tables, modals and View Transitions.
i18n website pnpm -F meeko-i18n-site build && pnpm -F meeko-i18n-site test:e2e Production build, real catalogs, language switching and RTL.
Public website pnpm -F meeko-site test Site reference and content.
Distribution pnpm package:workspace-smoke All packages installed from tarballs.

UI tests use installed Chrome by default. CI uses Playwright's Chromium through MEEKO_CHROME_PATH; you can set this variable to choose another compatible executable. UI scenarios run sequentially because some test HMR by modifying and restoring artifacts.

Declarations and installed consumer#

The UI build generates declarations alongside each .meeko file. When moving them from .meeko/types, it adjusts their relative imports and adds ESM extensions for NodeNext; component references keep their .meeko extension.

Regression tests check all distributed declarations without skipLibCheck. The smoke test creates the consumer in the system temporary directory, outside the workspace, to prevent it from resolving undeclared dependencies from the repository's node_modules. It checks exports, types, ESLint/Prettier, components and CSS processed by the consumer's PostCSS. It does not publish packages and keeps its temporary folder for diagnostics.

The consumer installation uses --prefer-offline --ignore-scripts: it reuses the store and downloads anything missing from the registry, without running third-party installation scripts. An incomplete local cache must not be confused with a dependency available through the workspace.

CI#

The main verification builds before linting, checks packages and applications, runs ecosystem and core tests and validates installed consumers. The existing Redis, Node/Bun/Deno/workerd and VS Code jobs keep their specific scenarios. Failure logs are kept as artifacts; local tests are not equivalent to a remote Actions run.

Was this page helpful?

Add a comment

It is sent when you choose “Yes” or “No”. Only the page, your answer and the comment are stored: no cookies and no personal data.

0 of 2000 characters

Edit on GitHub: docs/testing.md