From 01d02fcef6d242d88dd495bf84c536e8f39a0716 Mon Sep 17 00:00:00 2001 From: Ilia Denisov Date: Fri, 3 Jul 2026 03:18:23 +0200 Subject: [PATCH] feat(ui): show the email upgrade box to guests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Un-hide the Profile email box for guest accounts (hidden={!p.isGuest}): a guest binds an email to register / sign in, and a returning address opens the existing merge dialog. Provider linking stays hidden — the Telegram control keeps its wiring behind a hidden attribute — until the non-guest linking matrix (PR2). The two linking e2e specs remain skipped (they assume a non-guest login and the visible Telegram control); update their stale comments. --- ui/e2e/social.spec.ts | 8 ++++---- ui/src/screens/Profile.svelte | 12 +++++++----- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/ui/e2e/social.spec.ts b/ui/e2e/social.spec.ts index fe12a2a..1562d9a 100644 --- a/ui/e2e/social.spec.ts +++ b/ui/e2e/social.spec.ts @@ -292,14 +292,14 @@ test('profile edit disables Save and flags an invalid display name', async ({ pa await expect(save).toBeEnabled(); }); -// Account linking is hidden in Profile.svelte while we target provider sign-in (the anonymous -// /app/ guest who upgrades by linking comes later). The flow is kept wired; re-enable these two -// specs together with the `.emailbox` section. +// The email upgrade box is now shown to guests (email bind + the merge dialog). These specs +// still assume a non-guest login and the visible Telegram control, so they stay skipped until +// PR2 re-enables provider linking and adds a guest-login setup. test.skip('link account: a taken email opens the irreversible merge confirmation', async ({ page }) => { await loginLobby(page); await openProfile(page); - // The linking section is shown to everyone (guests upgrade by linking). + // The email box is shown to guests (this spec needs a guest login — re-enabled in PR2). await expect(page.getByRole('heading', { name: 'Link an account' })).toBeVisible(); // An address containing "merge" stands in (in the mock) for one already owned by // another account, so the confirm step reveals a required merge. diff --git a/ui/src/screens/Profile.svelte b/ui/src/screens/Profile.svelte index f12a500..8590b3a 100644 --- a/ui/src/screens/Profile.svelte +++ b/ui/src/screens/Profile.svelte @@ -244,10 +244,11 @@ {/if} - -