← All projects

Featured project 2 · TypeScript · Web + API

Playwright + TypeScript Framework

UI and API test automation for a demo web shop (Angular front end + REST API) with Playwright Test and strict TypeScript: 47 tests, 95 runs per full run on Chromium, Firefox and WebKit.

Live CI status of Playwright + TypeScript Framework

View source code View documentation View latest CI runs View test report

Purpose

Tests the Practice Software Testing Toolshop, a public demo shop built for testers, through its UI and its REST API, to show modern TypeScript test design: page objects, fixtures, typed API contracts and network control.

Technology stack

AreaTools
Test runnerPlaywright Test 1.64
LanguageTypeScript 6, strict mode
API contractszod 4 schemas (also the TypeScript types)
Static checkstsc, ESLint (type-aware, eslint-plugin-playwright), Prettier
CIGitHub Actions: checks, then api/chromium/firefox/webkit in parallel, then one merged report

Architecture overview

tests/api/*.api.spec.ts   tests/ui/*.spec.ts
        │                         │
  fixtures/test.ts (page objects, API clients, test user, loggedIn option)
        │                         │
  api/ AuthApi · ProductsApi · CartsApi        pages/ + components/HeaderComponent
  + zod schemas                                + @step decorator
        │                         │
     REST API                 Browser (3 engines)

Key engineering decisions

Implemented features

Setup and execution

npm ci
npx playwright install --with-deps
npm test                 # API + 3 browsers
npm run test:api         # API only
npm run check            # typecheck + lint + format (what CI runs first)

Sample test results

Playwright HTML report overview
Merged Playwright HTML report of a full run.

CI workflow

One workflow: static checks first, then four parallel jobs (API, Chromium, Firefox, WebKit), then a single merged HTML report kept as an artifact.

Known limitations and future improvements

Limitations

Next steps