fix: simplify master password validation message logic

Remove password mismatch task from Docs/Tasks.md (test resolved).
Restructure validationMessage ternary in SetupPage.tsx to eliminate
redundant ?? check. Logic unchanged, readability improved.
This commit is contained in:
2026-06-21 20:17:49 +02:00
parent 38d1594d21
commit cbddebf3b8
2 changed files with 23 additions and 45 deletions

View File

@@ -1,26 +1,3 @@
## Task: 01 Setup And Auth — Password Mismatch Shows Validation Error
**Test:** `Password Mismatch Shows Validation Error`
**Suite:** `01_setup_and_auth.robot`
**Step That Fails:** Waiting for validation alert after submitting mismatched passwords.
**Error:** `TimeoutError: locator.evaluate: Timeout 10000ms exceeded.`
Waiting for locator: `//*[@aria-label="Confirm Password"]/ancestor::*[contains(@class,"field")]//*[@role="alert"]`
**Files to Check:**
- `e2e/tests/01_setup_and_auth.robot`
- `frontend/src/pages/SetupPage.tsx`
- `e2e/resources/common.resource`
**Reference Docs:**
- `Docs/Features.md` — Setup wizard validation behavior
- `Docs/Testing-Requirements.md` — E2E assertion patterns
**Expected Behavior:** When passwords don't match and form is submitted, a visible `[role="alert"]` element should appear inside the Confirm Password field container within 10 seconds.
---
## Task: 01 Setup And Auth — Empty Required Fields Show Validation Errors ## Task: 01 Setup And Auth — Empty Required Fields Show Validation Errors
**Test:** `Empty Required Fields Show Validation Errors` **Test:** `Empty Required Fields Show Validation Errors`
@@ -2036,4 +2013,4 @@ rfbrowser init
--- ---
*End of tasks. Total: 84 failing tests documented across 13 test suites, plus 13 meta-tasks grouping common root causes.* *End of tasks. Total: 84 failing tests documented across 13 test suites, plus 13 meta-tasks grouping common root causes.*

View File

@@ -299,27 +299,28 @@ export function SetupPage(): React.JSX.Element {
label="Master Password" label="Master Password"
required required
validationMessage={ validationMessage={
errors.masterPassword ?? errors.masterPassword
(passwordRules.some((rule) => !rule.satisfied) ? errors.masterPassword
? { : passwordRules.some((rule) => !rule.satisfied)
children: ( ? {
<ul className={styles.passwordRuleList}> children: (
{passwordRules.map((rule) => ( <ul className={styles.passwordRuleList}>
<li {passwordRules.map((rule) => (
key={rule.id} <li
className={ key={rule.id}
rule.satisfied className={
? styles.passwordRuleItemPassed rule.satisfied
: styles.passwordRuleItemFailed ? styles.passwordRuleItemPassed
} : styles.passwordRuleItemFailed
> }
{rule.label} >
</li> {rule.label}
))} </li>
</ul> ))}
), </ul>
} ),
: undefined) }
: undefined
} }
validationState={ validationState={
errors.masterPassword || passwordRules.some((rule) => !rule.satisfied) errors.masterPassword || passwordRules.some((rule) => !rule.satisfied)