You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Migrate remaining Selenide UI tests to Playwright (#70)
* feat: migrate remaining Selenide UI tests to Playwright (#67)
Remove all Selenide test infrastructure (18 Java files, 1,664 lines) and
consolidate on Playwright as the single E2E framework. All Selenide test
scenarios were already covered by existing Playwright specs; two new
validation tests (empty fields, long names) were added to fill a gap.
Key changes:
- Delete Selenide test classes, page objects, utilities, and JDBC helpers
- Remove selenide and webdrivermanager dependencies from build.gradle
- Remove uiTest Gradle task and excludeTags 'ui' filter
- Replace all networkidle waits with domcontentloaded across 14 Playwright
spec files (fixes timeout failures caused by WebAuthn endpoints returning
500 on pages that load webauthn JS)
- Add profile update validation tests to update-profile.spec.ts
- Fix pre-existing Instant/Date type mismatch in TestDataController
- Update EmailVerificationEdgeCaseTest to use userRepository instead of
deleted DatabaseStateValidator
- Update CLAUDE.md and README.md to reflect Playwright as E2E framework
Closes#67
* chore: upgrade Spring User Framework to 4.3.1
Fixes WebAuthn 500 errors caused by missing user_credentials table
(see devondragon/SpringUserFramework#286). Also removes unused
DSUserDetails constant from ApiTestData that caused NPE with the
new constructor signature.
* fix: wait for async error element in duplicate registration test
The registration form uses async fetch (no page navigation), so
waitForLoadState returns immediately. Wait for the error element
to become visible instead of checking synchronously.
* fix: address Copilot review feedback on validation test assertions
- Empty field submission: assert HTML5 checkValidity() instead of just URL
- Long name submission: use updateProfileAndWait() and assert message visible
- Weak password: wait for globalMessage with sufficient timeout before asserting error
- Mismatched passwords: assert confirmPasswordError element is visible
0 commit comments