Files
openobserve/tests
Shrinath RaoandClaude Opus 4.8 8da11deec7 test(logs): heal Bug 9724 JSON-tab-default flake with retrying data-state assertion (#13407)
## What

Heals the flaky **Logs-Regression** spec `Log detail sidebar opens with
JSON tab by default (Bug #9724)`, which failed the scheduled main
regression run
[29990712453](https://github.com/openobserve/openobserve/actions/runs/29990712453)
(and its re-run) on all retries.

## Root cause

`logsPage.verifyJsonTabSelectedByDefault()` read the Reka `OTab`
(`TabsTrigger`) `data-state` attribute with a **one-shot** `.evaluate(el
=> el.getAttribute('data-state') === 'active')`. `DetailTable.vue` is
loaded via `defineAsyncComponent`, and its tabs moved to Reka UI in the
design-token migration (13173). On drawer open, the trigger can render a
tick before Reka's reactive `data-state` settles to `active`. A raw
`getAttribute` read does **not** auto-retry, so under CI load it
captured the pre-settle value and failed.

JSON **is** the genuine product default (`DetailTable.vue` `tab =
ref(initialTab || "json")`, `SearchResult.vue` `detailTableInitialTab =
"json"`) — this is a load flake, not a product regression.

## Fix

Replace the one-shot reads with the auto-retrying
`expect(tab).toHaveAttribute('data-state', 'active', { timeout: 10000
})` pattern already used elsewhere in the same page object
(regex-pattern / builder-type toggles), across all three tab-verify
helpers:

- `verifyJsonTabSelectedByDefault()`
- `verifyTableTabSelected()`
- `verifyJsonTabSelected()`

Test-only change; no product code touched.

## Verification

Local run against `localhost:5080`:

```
npx playwright test playwright-tests/RegressionSet/Logs/logs-regression.spec.js \
  -g "Bug #9724" --project=chromium --repeat-each=3
# 3 passed (16.9s)
```

The single spec exercises all three healed helpers (default-JSON at
steps 3 + reopen, Table tab at step 6, JSON switch-back at step 7).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 10:34:55 +00:00
..
2024-09-22 17:57:47 +08:00