import { expect, test } from '@playwright/test'

const EXPLORER_URL = process.env.EXPLORER_URL || 'https://explorer.d-bis.org'
const CANONICAL_CUSDT = '0x93E66202A11B1772E55407B32B44e5Cd8eda7f22'

test.describe('Explorer sprint smoke', () => {
  test('homepage dashboard loads', async ({ page }) => {
    await page.goto(`${EXPLORER_URL}/`, { waitUntil: 'domcontentloaded', timeout: 20000 })
    await expect(page.getByText(/Network overview/i)).toBeVisible({ timeout: 10000 })
    await expect(page.getByRole('heading', { name: /Recent Transactions/i })).toBeVisible({ timeout: 10000 })
  })

  test('wallet page loads', async ({ page }) => {
    await page.goto(`${EXPLORER_URL}/wallet`, { waitUntil: 'domcontentloaded', timeout: 20000 })
    await expect(page.getByRole('heading', { name: /Wallet Tools/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 })
    await expect(page.getByText(/Canonical Chain 138 trading set/i).first()).toBeVisible({ timeout: 10000 })
  })

  test('canonical cUSDT token detail loads', async ({ page }) => {
    await page.goto(`${EXPLORER_URL}/tokens/${CANONICAL_CUSDT}`, { waitUntil: 'domcontentloaded', timeout: 20000 })
    await expect(page.getByText(/cUSDT|Tether/i).first()).toBeVisible({ timeout: 10000 })
  })

  test('operations hub loads extended token list note', async ({ page }) => {
    await page.goto(`${EXPLORER_URL}/operations`, { waitUntil: 'domcontentloaded', timeout: 20000 })
    await expect(page.getByText(/Extended Metamask dual-chain catalog/i)).toBeVisible({ timeout: 10000 })
  })
})
