fix: resolve strict mode violations and stale text in E2E tests

- public.spec.ts: add exact:true for 'Start Free' (matched 3 links)
- navigation/history: add exact:true for 'Sessions' heading (matched
  'AI Sessions' and 'Flow Sessions' subheadings too)
- command-palette: 'Ask FlowPilot AI' → 'Troubleshoot with FlowPilot'
- CLAUDE.md: add warning not to use gh run watch (burns tokens)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
chihlasm
2026-03-27 17:16:38 +00:00
parent 9061c91c89
commit c7abe905f7
5 changed files with 6 additions and 6 deletions

View File

@@ -221,8 +221,8 @@ cd backend && pip install httpx && python -m scripts.seed_trees
# CI/CD debugging
gh run list --limit 5 # Recent CI runs
gh run view <id> --log-failed # Failed job logs
gh run watch <id> --exit-status # Watch run until complete
gh run view <id> --json jobs --jq '.jobs[] | {name: .name, conclusion: .conclusion}'
# NEVER use `gh run watch` — it holds context open and burns tokens while waiting
```
### URLs

View File

@@ -45,7 +45,7 @@ test.describe('command palette smoke tests', () => {
// Should show AI Assistant section with FlowPilot option
await expect(page.getByText('AI Assistant')).toBeVisible({ timeout: 5000 })
await expect(page.getByText('Ask FlowPilot AI')).toBeVisible()
await expect(page.getByText('Troubleshoot with FlowPilot')).toBeVisible()
} finally {
await disposeApiContext(api)
}
@@ -83,7 +83,7 @@ test.describe('command palette smoke tests', () => {
// AI Assistant section should appear with FlowPilot option
await expect(page.getByText('AI Assistant')).toBeVisible({ timeout: 3000 })
const flowpilotOption = page.getByText('Ask FlowPilot AI')
const flowpilotOption = page.getByText('Troubleshoot with FlowPilot')
await expect(flowpilotOption).toBeVisible()
await flowpilotOption.click()

View File

@@ -24,7 +24,7 @@ test.describe('session history smoke tests', () => {
await page.goto('/sessions')
await expect(
page.getByRole('heading', { name: 'Sessions' }),
page.getByRole('heading', { name: 'Sessions', exact: true }),
).toBeVisible()
await page.getByPlaceholder('Search by ticket number...').fill(ticketNumber)

View File

@@ -14,7 +14,7 @@ test.describe('authenticated navigation smoke tests', () => {
await page.goto('/sessions')
await expect(
page.getByRole('heading', { name: 'Sessions' }),
page.getByRole('heading', { name: 'Sessions', exact: true }),
).toBeVisible()
})

View File

@@ -7,7 +7,7 @@ test.describe('public route smoke tests', () => {
await page.goto('/landing')
await expect(
page.getByRole('link', { name: 'Start Free' }),
page.getByRole('link', { name: 'Start Free', exact: true }),
).toBeVisible()
await expect(
page.getByText('Resolve tickets faster.'),