This repository contains an end-to-end test suite for Bulldoggy, a FastAPI and HTMX-based reminders web app. The tests are implemented using Playwright with TypeScript and cover key user interactions, API validation, and accessibility checks.
git clone <bulldoggy-playwright-tests>
cd bulldoggy-playwright-testsEnsure you have Node.js (>=16) installed, then run:
npm installBefore running tests, ensure the Bulldoggy web app is running locally:
cd ../bulldoggy-reminders-app
uvicorn app.main:app --reloadThe app should now be accessible at http://127.0.0.1:8000.
Navigate back to the test project and execute the tests:
cd ../bulldoggy-playwright-tests
npx playwright testThis test suite validates the following core functionalities:
-
User Login & Logout Validation π·οΈ
- Verify users can log in and out successfully.
- Validate the "successfully logged out" message.
-
Create, Edit, and Delete a Reminder List π
- Ensure a new list can be created, renamed, and deleted.
-
Add, Edit, Complete, and Delete a Reminder Item ποΈ
- Verify users can add new items to a list.
- Ensure items can be edited, marked as completed, and deleted.
-
Data Persistence After Logout/Login π
- Validate that lists and reminders persist after logging out and back in.
-
Basic Accessibility Checks βΏ
- Check for missing ARIA landmarks, language attributes, tabbing issues, and contrast errors.
Tests are executed in parallel across the following browsers:
- β Chromium (Google Chrome)
- β Firefox
- β WebKit (Safari)
- Modify
playwright.config.tsto adjust settings like base URL, retries, tracing, and video recording. - Run tests in debug mode:
npx playwright test --debug - Capture screenshots on failure:
use: { screenshot: 'only-on-failure' }
To run tests automatically on GitHub Actions:
git add .github/workflows/playwright.yml
git commit -m "Added GitHub Actions workflow"
git push origin mainIf you'd like to contribute to improving the test suite, feel free to submit a pull request or open an issue.
This project is open-source and available under the MIT License.
Built with π«Άπ» and Playwright π by Erin Crise