diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index bd54e498f..c98a0eaf3 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -200,6 +200,26 @@ jobs: - name: Install dependencies run: uv sync --dev + - name: Set up Node.js for real-stack browser tests + uses: actions/setup-node@v4 + with: + node-version: '25' + + - name: Install pnpm + uses: pnpm/action-setup@v4 + with: + version: 8.9.2 + + - name: Install frontend dependencies and Chromium + working-directory: web + run: | + pnpm install --frozen-lockfile + pnpm exec playwright install --with-deps chromium + + - name: Build frontend for real-stack browser tests + working-directory: web + run: pnpm build + - name: Run E2E startup tests run: uv run pytest tests/e2e -m "not local_agent" -q --tb=short diff --git a/web/tests/e2e/crud-smoke.spec.ts b/web/tests/e2e/crud-smoke.spec.ts index 9a546d2b1..d38c6a515 100644 --- a/web/tests/e2e/crud-smoke.spec.ts +++ b/web/tests/e2e/crud-smoke.spec.ts @@ -312,7 +312,7 @@ test.describe('frontend CRUD smoke flows', () => { ).toBeVisible(); await page.getByRole('tab', { name: /^AI$/ }).click(); - await expect(page.getByText('Runtime')).toBeVisible(); + await expect(page.getByText('Runtime', { exact: true })).toBeVisible(); await expect( page.locator('[data-slot="card-title"]').filter({ hasText: 'Local Agent',