mirror of
https://github.com/mattermost/mattermost.git
synced 2026-09-21 14:20:41 +08:00
* MM-63588: Add e2e tests for System Console Custom Profile Attributes Add Playwright e2e tests for the System Console User Attributes page, covering CRUD operations for custom profile attribute field definitions. Tests cover: - Page navigation and empty state display - Creating text, select, and multiselect attributes with options - Editing attribute names - Deleting attributes (saved and unsaved) - Duplicating attributes - Changing attribute types (Text to Phone) - Configuring visibility (Always show/Hide when empty/Always hide) - Toggling "Editable by users" setting - Batch creation (multiple attributes at once) - Persistence verification after page reload - Validation warnings (empty name, duplicate names) Follows the same patterns established in MM-62558 / PR #30722 for Profile Popup CPA tests, reusing shared helpers for field setup/cleanup. * Fix 6 failing e2e tests for System Console User Attributes - Remove .clear() before .fill() to prevent value-based locators from going stale (edit name, persist after reload tests) - Hover on visibility submenu instead of click, use force:true to handle DOM detach during menu animation (visibility test) - Press Escape to close dot menu before clicking Save, since the "Editable by users" toggle keeps the menu open (editable test) - Fix expected validation text: use "Attribute names must be unique." instead of "Attribute name already taken." (duplicate names test) - Increase timeout for Save button disabled assertion after deleting unsaved attribute (delete unsaved test) * Fix stale locators, flaky save check, and document dirty-state bug - Use data-testid locators instead of value-based selectors for inputs that get mutated by fill() (edit name + persist reload tests) - Wait for Save button to return to disabled after save before API check to avoid flaky field-not-found failures - Add test.fail() for Save-stays-enabled bug after deleting an unsaved row so CI passes today and alerts when the app bug is fixed - Add LOCATOR NOTE to file header explaining the lazy locator pitfall * Address CodeRabbit review: save helper, locator fix, test rename - Add saveAndWaitForSettled() helper and apply to all 11 save paths for consistent post-save stabilization before API verification - Fix deptInput locator: use input[value] instead of broken filter({hasText}) which doesn't match input element children - Rename "different types" test to "multiple text attributes" to match actual coverage * MM-63588: add SystemProperties page object and refactor spec to POM Extract all UI selectors from user_attributes.spec.ts into a SystemProperties page object class, eliminating inline selectors from the test file. Replace coarse networkidle with waitForResponse on the actual save API endpoint. * fix playwright e2e test failures - selectType was failing as 'select' caught both 'select' and 'multi-select' - Prior behavior where Save button wasn't returning to disabled appears to be working now, removing test.fail() --------- Co-authored-by: Mattermost Build <build@mattermost.com>