Complete UX audit P3: API copy URLs, labels, retry, and smoke sync.
Add footer copy-to-clipboard for public APIs, align ops page labels, improve mobile brand lockup, surface WalletConnect posture on wallet tools, add account access discovery, liquidity retry alerts, and refresh smoke-route expectations. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -15,6 +15,11 @@ test.describe('Explorer sprint smoke', () => {
|
||||
await expect(page.getByRole('heading', { name: /Wallet Tools/i })).toBeVisible({ timeout: 10000 })
|
||||
})
|
||||
|
||||
test('wallet page shows WalletConnect posture note', async ({ page }) => {
|
||||
await page.goto(`${EXPLORER_URL}/wallet`, { waitUntil: 'domcontentloaded', timeout: 20000 })
|
||||
await expect(page.getByText(/WalletConnect v2 posture/i)).toBeVisible({ timeout: 10000 })
|
||||
})
|
||||
|
||||
test('tokens page loads', async ({ page }) => {
|
||||
await page.goto(`${EXPLORER_URL}/tokens`, { waitUntil: 'domcontentloaded', timeout: 20000 })
|
||||
await expect(page.getByRole('heading', { name: /^Tokens$/i })).toBeVisible({ timeout: 10000 })
|
||||
@@ -28,7 +33,7 @@ test.describe('Explorer sprint smoke', () => {
|
||||
|
||||
test('operations hub loads extended token list note', async ({ page }) => {
|
||||
await page.goto(`${EXPLORER_URL}/operations`, { waitUntil: 'networkidle', timeout: 30000 })
|
||||
await expect(page.getByRole('heading', { name: /Operations Hub/i })).toBeVisible({ timeout: 10000 })
|
||||
await expect(page.getByRole('heading', { name: /Operations hub/i })).toBeVisible({ timeout: 10000 })
|
||||
await expect(page.getByText(/Extended Metamask dual-chain catalog/i).first()).toBeVisible({ timeout: 10000 })
|
||||
})
|
||||
|
||||
@@ -49,9 +54,15 @@ test.describe('Explorer sprint smoke', () => {
|
||||
await expect(page.getByRole('contentinfo').getByText(/Public APIs/i)).toBeVisible({ timeout: 10000 })
|
||||
await expect(page.getByRole('contentinfo').getByRole('link', { name: /Blockscout stats/i })).toBeVisible({ timeout: 10000 })
|
||||
await expect(page.getByRole('contentinfo').getByRole('link', { name: /Wallet tools/i })).toBeVisible({ timeout: 10000 })
|
||||
await expect(page.getByRole('contentinfo').getByRole('button', { name: /Copy URL for Blockscout stats/i })).toBeVisible({ timeout: 10000 })
|
||||
await expect(page.getByRole('contentinfo').getByRole('link', { name: /Account access/i })).toBeVisible({ timeout: 10000 })
|
||||
})
|
||||
|
||||
test('homepage quick links include account access', async ({ page }) => {
|
||||
await page.goto(`${EXPLORER_URL}/`, { waitUntil: 'domcontentloaded', timeout: 20000 })
|
||||
await expect(page.getByRole('link', { name: /Account access/i }).first()).toBeVisible({ timeout: 10000 })
|
||||
})
|
||||
|
||||
test('tablet viewport exposes mobile navigation menu', async ({ page }) => {
|
||||
await page.setViewportSize({ width: 1100, height: 800 })
|
||||
await page.goto(`${EXPLORER_URL}/`, { waitUntil: 'domcontentloaded', timeout: 20000 })
|
||||
@@ -68,7 +79,7 @@ test.describe('Explorer sprint smoke', () => {
|
||||
|
||||
test('operator page shows track 4 surface note', async ({ page }) => {
|
||||
await page.goto(`${EXPLORER_URL}/operator`, { waitUntil: 'domcontentloaded', timeout: 30000 })
|
||||
await expect(page.getByRole('heading', { name: /^Operator Surface$/i })).toBeVisible({ timeout: 15000 })
|
||||
await expect(page.getByRole('heading', { name: /^Operator$/i })).toBeVisible({ timeout: 15000 })
|
||||
await expect(page.getByText(/Track 4 public surface/i).first()).toBeVisible({ timeout: 10000 })
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user