Fix UX audit gaps: tablet nav, footer, wallet connect, legacy demotion.
Close the 1024–1279px nav dead zone, align ops/footer labels, split homepage quick links, route successful wallet connect to /wallet with inline errors, add WETH to ops sub-nav, and demote legacy SPA with noindex plus banner. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -38,17 +38,26 @@ test.describe('Explorer sprint smoke', () => {
|
||||
await expect(page.getByText(/CCIP route catalog/i).first()).toBeVisible({ timeout: 15000 })
|
||||
})
|
||||
|
||||
test('operations hub shows surface navigation', async ({ page }) => {
|
||||
test('operations hub shows WETH in surface navigation', async ({ page }) => {
|
||||
await page.setViewportSize({ width: 1280, height: 720 })
|
||||
await page.goto(`${EXPLORER_URL}/operations`, { waitUntil: 'domcontentloaded', timeout: 30000 })
|
||||
await expect(page.getByRole('navigation', { name: /Operations surfaces/i })).toBeVisible({ timeout: 10000 })
|
||||
await expect(page.getByRole('link', { name: /Bridge/i }).first()).toBeVisible({ timeout: 10000 })
|
||||
await expect(page.getByRole('navigation', { name: /Operations surfaces/i }).getByRole('link', { name: /^WETH$/i })).toBeVisible({ timeout: 10000 })
|
||||
})
|
||||
|
||||
test('footer lists public API endpoints', async ({ page }) => {
|
||||
test('footer lists public API endpoints and explorer surfaces', async ({ page }) => {
|
||||
await page.goto(`${EXPLORER_URL}/`, { waitUntil: 'domcontentloaded', timeout: 20000 })
|
||||
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('link', { name: /Account access/i })).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 })
|
||||
await expect(page.getByRole('button', { name: /Open navigation menu/i })).toBeVisible({ timeout: 10000 })
|
||||
await page.getByRole('button', { name: /Open navigation menu/i }).click()
|
||||
await expect(page.getByRole('link', { name: /Operations hub/i }).first()).toBeVisible({ timeout: 10000 })
|
||||
})
|
||||
|
||||
test('analytics page shows track 3 surface note', async ({ page }) => {
|
||||
@@ -63,9 +72,10 @@ test.describe('Explorer sprint smoke', () => {
|
||||
await expect(page.getByText(/Track 4 public surface/i).first()).toBeVisible({ timeout: 10000 })
|
||||
})
|
||||
|
||||
test('legacy SPA fallback loads', async ({ page }) => {
|
||||
test('legacy SPA fallback loads with deprecation banner', async ({ page }) => {
|
||||
await page.goto(`${EXPLORER_URL}/legacy/index.html`, { waitUntil: 'domcontentloaded', timeout: 30000 })
|
||||
await expect(page).toHaveTitle(/DBIS Explorer/i)
|
||||
await expect(page.getByText(/Deprecated legacy explorer UI/i)).toBeVisible({ timeout: 10000 })
|
||||
await expect(page.getByRole('heading', { name: /Latest Blocks/i })).toBeVisible({ timeout: 15000 })
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user