This project contains end-to-end (E2E) automated UI tests written using Playwright for a web-based device management application.
This project contains automated UI tests for the Device Management application.
The tests target the Device Management application deployed at:
https://homework-fe.fly.dev/
All user stories have been tested as separate specs:
- Valid admin login
- Blocked login with invalid credentials or missing input
- Logout removes access to
/devices
route
- Device can be created and is visible in the list
- Device with empty fields can't be submitted (Save remains visible)
- Devices can be sorted by:
- Device name
- Country
- Created date
- OS type
- Devices can be selected and deleted from the list
- Logs in, creates device, verifies it's visible, deletes it
tests/
├── specs/ All test specs organized by user story
│ ├── login.spec.ts
│ ├── createDevice.spec.ts
│ ├── deleteDevice.spec.ts
│ ├── deviceList.spec.ts
│ └── happyPath.spec.ts
│
├── pages/ Page Object Model (POM)
│ ├── loginPage.ts
│ ├── homePage.ts
│ └── createDevicePage.ts
│
├── helpers/ Test utilities and shared logic
│ └── testHelpers.ts
│
├── assets/ Screenshots of story files to test (PNG files)
│ └── userStories1.pdf
│ └── userStories2.png
│
└──README.md This documentation file
-
PlaywrightđźŽ
-
TypeScript
-
Page Object Model (POM) architecture
-
Before each function
-
Helper file
-
Chromium browser
-
This suite assumes a clean test state – devices are deleted before each test when needed.
-
No mocking: tests run against real app behavior.
-
Network requests are partially observed for form validation.
-
Only three POMs were used intentionally since the last test runs on the homepage, so a fourth POM was not needed.
PlaywrightđźŽ