This project is a Playwright test suite written in TypeScript for the demo Kanban app:
- Demo App:
https://animated-gingersnap-8cf7f2.netlify.app/ - Username:
admin - Password:
password123
The suite is data-driven. Test scenarios are defined in test-data.json, and the spec dynamically generates one test per JSON entry to avoid duplication and keep the suite scalable.
- Playwright
- TypeScript
- Page Object Model (POM)
- Playwright fixtures
- JSON-driven test data
.
├── fixtures/
│ └── fixtures.ts
├── pages/
│ ├── BasePage.ts
│ ├── KanbanPage.ts
│ └── LoginPage.ts
├── tests/
│ └── kanban.spec.ts
├── test-data.json
├── playwright.config.ts
└── .env
The suite validates these required scenarios:
Web Application→Implement user authenticationinTo Dowith tagsFeature,High PriorityWeb Application→Fix navigation buginTo Dowith tagBugWeb Application→Design system updatesinIn Progresswith tagDesignMobile Application→Push notification systeminTo Dowith tagFeatureMobile Application→Offline modeinIn Progresswith tagsFeature,High PriorityMobile Application→App icon designinDonewith tagDesign
test-data.jsonstores the test inputs.tests/kanban.spec.tsloops over that JSON and creates one Playwright test per case.- Adding a new scenario only requires adding a new JSON object, with no need to duplicate test logic.
Install dependencies:
npm installRun all tests headless:
npm testRun all tests in headed mode:
npx playwright test --headedRun in debug mode:
npm run test:debugOpen the Playwright HTML report:
npm run test:report- Configuration values are loaded from
.env. - Login credentials and base URL are parameterized through environment variables.
- The implementation uses page objects and fixtures to keep the test code clean and maintainable.