@emesoft_company/playwright-core
v2.2.0
Published
Shared Playwright automation core: fixtures, API client abstraction, config loader, auth helpers, reporting integration.
Readme
@emesoft_company/playwright-core
Shared, production-grade Playwright automation core consumed by independent test project repositories. Provides fixtures, config loading, API client abstraction, auth helpers, generic UI base components, structured logging, retry/error handling, and optional Allure reporting integration.
See docs/ARCHITECTURE.md for how core and consuming projects
interact, docs/EXTENDING.md for override patterns,
docs/PUBLISHING.md for versioning/publishing strategy, and
docs/NEW_PROJECT.md for scaffolding a new project that consumes core
(scripts/scaffold-e2e-project.sh + templates/e2e-project/).
Install (consuming projects)
Published on npm under the emesoft_company org:
pnpm add @emesoft_company/playwright-coreFor local development across repos in the same workspace, a project can point at the local
folder instead via a file: dependency (see docs/PUBLISHING.md).
Develop
pnpm install
pnpm build # tsup -> dist/ (ESM + CJS + .d.ts)
pnpm test # vitest unit tests for loader/retry/etc.
pnpm test:browser # Playwright tests for the ui/ wait helpers (needs a browser)
pnpm typecheckPackage layout
| Subpath | Purpose |
|---|---|
| @emesoft_company/playwright-core | Barrel export of the full public API |
| @emesoft_company/playwright-core/config | Multi-environment config loader + zod schema |
| @emesoft_company/playwright-core/fixtures | Base Playwright fixtures (logger, apiClient, auth, retry) |
| @emesoft_company/playwright-core/api | API client abstraction over APIRequestContext |
| @emesoft_company/playwright-core/auth | Token provider / JWT auth helpers |
| @emesoft_company/playwright-core/ui | Generic BasePage / BaseComponent / TableComponent, plus waitForStableVisible / waitForHidden for flaky elements |
| @emesoft_company/playwright-core/logging | Structured logger |
| @emesoft_company/playwright-core/errors | AppError classes + withRetry helper |
| @emesoft_company/playwright-core/reporting | Optional Allure reporter wiring |
| @emesoft_company/playwright-core/di | Lightweight service container used by fixtures |
| @emesoft_company/playwright-core/utils | sleep, waitForCondition (generic polling, outside UI locators), deepMerge |
| @emesoft_company/playwright-core/data | Unique/random value generators (uniqueId, uniqueEmail, isoDate, …) |
| @emesoft_company/playwright-core/expect | expect with toHaveStatus / toMatchSchema (also re-exported from /fixtures) |
What a project gets for free
defineE2EConfig()— the entireplaywright.config.tsin three linesTableComponent— cells by column name, whole-tablerecords(), row filteringBasePage/BaseComponent— safe click/fill/select/upload, scoped lookups, waitsApiClient— bearer auth, retry on 5xx/429, zod-validated responses, assertable error statuses- Auth — one-time login (single or per role) with reusable storage state
- Diagnostics — console/page errors and failed requests attached to the report automatically
cleanup— LIFO teardown for data a test created
Upgrading from 1.x? See docs/MIGRATION-v2.md.
