🟡 MEDIUM - User preferences feature
Migrate Profile Settings wdio test to Cypress. This test covers user interface language preference changes.
-
profile-settings.language.spec.ts- Language preference selection
- wdio tests:
eform-client/e2e/Tests/profile-settings/ - Target location:
eform-client/cypress/e2e/e/(with password settings)
- Should navigate to profile settings
- Should display available languages
- Should select different language
- Should save language preference
- Should verify UI updates to selected language
- Should verify language preference persists after logout/login
- Should test multiple language switches
- Action: Create page object for profile settings in Cypress
- May share: Can potentially share with password settings page object
- Navigate to profile/user settings page
- Access language selection dropdown/options
- Select different language
- Save preference
- Verify UI text updates to selected language
- Test key UI elements in new language
- Logout and login to verify persistence
- Switch back to original language (cleanup)
Common languages to test (verify actual availability):
- English (en)
- Danish (da)
- German (de)
- Spanish (es)
- French (fr)
- Polish (pl)
- Ukrainian (uk)
- Norwegian (no)
- Swedish (sv)
- Test file migrated to Cypress
- Tests follow existing Cypress patterns
- Page object created for profile settings
- Language switching tested
- UI updates verified
- Preference persistence tested
- Tests pass locally
- Tests pass in CI/CD pipeline
- Language reset to default after test
- Use
cy.intercept()for language/profile API calls - Verify text changes in multiple UI elements
- Handle i18n/translation loading
- Store original language to restore after test
- Consider testing at least 2-3 different languages
// Save original language
let originalLanguage;
cy.get('[data-testid="language-selector"]')
.invoke('val')
.then(val => originalLanguage = val);
// Switch language
cy.get('[data-testid="language-selector"]').select('Danish');
cy.get('[data-testid="save-settings"]').click();
// Verify UI updated
cy.contains('Dashboard').should('not.exist');
cy.contains('Kontrolpanel').should('be.visible'); // Danish for Dashboard
// Restore original
cy.get('[data-testid="language-selector"]').select(originalLanguage);
cy.get('[data-testid="save-settings"]').click();- Login functionality (already available in Cypress)
- i18n/translation system
- Profile settings navigation
- Available language translations
Small (1-2 hours) - Single test with UI verification
Before closing this issue:
- Test file passing
- Language switches correctly
- UI updates verified
- Preference persists after login
- Multiple languages tested
- Language restored to default
- No translation errors
- Test is deterministic
- Code reviewed
- Update
WDIO_TO_CYPRESS_MIGRATION.mdprogress tracking