diff --git a/dapp/tests/management/management.spec.ts b/dapp/tests/management/management.spec.ts index 41a8048e8..3c683b741 100644 --- a/dapp/tests/management/management.spec.ts +++ b/dapp/tests/management/management.spec.ts @@ -658,4 +658,54 @@ test.describe.parallel('Name Management Tests', () => { await page.close(); }); + + test('Connect Address and Set Display', async ({ appPage: page, context, sharedState }) => { + const keypair = Ed25519Keypair.deriveKeypair(sharedState.wallet.mnemonic ?? ''); + const name = generateRandomName('default'); + const response = await purchaseName(name, keypair); + expect(response.effects?.status.status).toBe('success'); + + await page.goto('/my-names'); + await expect( + page.getByTestId('name-card').filter({ hasText: normalizeIotaName(name, 'at') }), + ).toBeVisible({ timeout: 10_000 }); + + const nameCard = page + .getByTestId('name-card') + .filter({ hasText: normalizeIotaName(name, 'at') }); + await nameCard.getByTestId('name-card-avatar').hover(); + const menuButtonLocator = nameCard.getByTestId('menu-button'); + await expect(menuButtonLocator).toBeVisible(); + await menuButtonLocator.click(); + + await page.getByText('Connect to Address', { exact: true }).click(); + const dialog = page.getByRole('dialog'); + await expect(dialog.getByText('Connect to Address')).toBeVisible(); + + await dialog.getByRole('button', { name: /use current address/i }).click(); + await expect(dialog.getByText('Set as Display name')).toBeVisible(); + + await dialog.getByText('Set as Display name').click(); + + await dialog.getByRole('button', { name: 'Apply' }).click(); + (await context.waitForEvent('page')).getByRole('button', { name: 'Approve' }).click(); + await page.bringToFront(); + + await expect(page.getByText('Address linked successfully', { exact: false })).toBeVisible({ + timeout: 30_000, + }); + await dialog.getByRole('button', { name: 'Finish' }).click(); + + // Search 'Displayed' pill + await page.reload(); + const reloadedNameCard = page + .getByTestId('name-card') + .filter({ hasText: normalizeIotaName(name, 'at') }); + await expect(reloadedNameCard).toBeVisible({ timeout: 10_000 }); + + const displayedPill = reloadedNameCard.getByText('Displayed', { exact: true }); + await expect(displayedPill).toBeVisible(); + + await page.close(); + }); });