feat(accountsetup): warn against using account password for app password

New users unfamiliar with app passwords commonly try their regular
account password first and get a confusing auth failure. Add a
disclaimer as supporting text directly under the "App password" field
on AppPasswordSetupScreen (shared by every preset provider), instead
of leaving the warning only in the intro InfoCards above.

Closes #160

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-02 22:29:53 -05:00
co-authored by Claude Opus 4.8
parent 4872d24981
commit c3cd567da2
3 changed files with 19 additions and 0 deletions
@@ -280,4 +280,21 @@ class OnboardingFlowTest {
composeTestRule.onNodeWithText(string(R.string.app_password_open_page, "iCloud Mail"))
.assertIsDisplayed()
}
@Test
fun appPasswordSetup_showsAccountPasswordDisclaimerNearField() {
setOnboardingContent(FakeAccountRepository(), FakeMailRepository())
composeTestRule.onNodeWithText(string(R.string.onboarding_add_account)).performClick()
waitForText("Gmail")
composeTestRule.onNodeWithText("Gmail").performClick()
// Issue #160: new users unfamiliar with app passwords commonly try their regular account
// password first. The disclaimer must render as supporting text directly under the "App
// password" field itself (not only in the intro InfoCards above), on every preset provider
// screen since they all share this composable.
waitForText(string(R.string.app_password_field))
composeTestRule.onNodeWithText(string(R.string.app_password_field_disclaimer))
.performScrollTo().assertIsDisplayed()
}
}