Files
wallet/apps/extension/e2e/tests/smoke/basic-setup.test.ts
T
Hanzo AI 78b18797d5 init: extract wallet from lux/exchange monorepo
Copies apps/extension, apps/mobile and 10 pkgs (wallet, ui, config,
utilities, sessions, gating, notifications, analytics, eslint-config,
prices) into a standalone pnpm workspace.  Resolves merge conflict
markers in extension and mobile package.json files, strips build
artifacts (.wxt, .output, Pods).
2026-04-11 01:59:19 -07:00

40 lines
1.4 KiB
TypeScript

import { expect } from '@playwright/test'
import { freshExtensionTest as test } from 'e2e/fixtures/extension.fixture'
import { ONE_SECOND_MS } from 'utilities/src/time/time'
import { sleep } from 'utilities/src/time/timing'
test.describe('Basic Extension Setup', () => {
test('extension loads successfully', async ({ context, extensionId }) => {
// Verify extension ID was captured
expect(extensionId).toBeTruthy()
expect(extensionId).toMatch(/^[a-z]{32}$/)
// Wait for extension pages to appear with retry logic
let extensionPages = []
const maxAttempts = 20
for (let i = 0; i < maxAttempts; i++) {
await sleep(ONE_SECOND_MS)
const pages = context.pages()
extensionPages = pages.filter((page) => page.url().includes(`chrome-extension://${extensionId}`))
if (extensionPages.length > 0) {
break
}
}
// Check that we have at least one page open
const pages = context.pages()
expect(pages.length).toBeGreaterThan(0)
// Verify at least one page is from the extension
expect(extensionPages.length).toBeGreaterThan(0)
})
test('background script loads', async ({ context }) => {
// Wait for service worker to load (MV3 extensions use service workers)
await sleep(ONE_SECOND_MS * 2)
const serviceWorkers = context.serviceWorkers()
expect(serviceWorkers.length).toBeGreaterThan(0)
})
})