Commit Graph
102 Commits
Author SHA1 Message Date
Shrinath Rao 1418aa7a19 test(e2e): alpha1 ingestion via ZO_INGEST_URL and page-load recovery (#15660) 2026-10-23 16:40:37 +00:00
Neha P 4737eb434a test(alerts): cover a join across stream types (#15636) (#15697) 2026-10-23 13:56:39 +00:00
Shrinath RaoandNeha P 71d8333bb4 test(logs): fix bug-13990 and bug-11400 regression tests (#15530)
Co-authored-by: Neha P <neha@openobserve.ai>
2026-10-23 06:34:55 +00:00
Shrinath Rao 5d50d5de70 test(logs): use real fields in the bug #11400 mixed-quote test (#15560) 2026-10-20 13:34:25 +00:00
Omkar Kesarkhaneandgithub-actions[bot] 3a71681718 feat(rum): Product Analytics app filters, funnel exclusions and a reworked funnel builder (#15389)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-10-19 08:55:44 +00:00
Shrinath Rao bb0594847b test: fix failing alpha1 e2e tests (#15494) 2026-10-18 12:21:39 +00:00
Shrinath Rao 03e5e5863f test: cut alpha1 querier load from e2e helpers (#15462) 2026-10-16 18:15:26 +00:00
Neha P eee507d403 test(general): reach Running Queries as the meta org before asserting the SQL tooltip (#15411) 2026-10-15 12:16:36 +00:00
Bhargav a32db1cd6d fix(web): keep the table cut-off tooltip anchored while it fades out (#15308) 2026-10-14 17:05:11 +08:00
Shrinath Rao 988ab817e6 test: heal 3 Logs regression specs broken by #15234 (#15326) 2026-10-14 04:27:00 +00:00
Hengfei Yang 180daa0aa6 feat(alerts): allow saving an alert with no destination (#15267) 2026-10-13 17:40:49 +08:00
Neha P 0481175c3a fix(logs): keep VRL-derived fields out of the quick-mode SELECT (#15246) 2026-10-09 13:33:53 +00:00
Vamsi Karthik R d7a46e2cc2 test: fix the stale Traces and RUM Bug-Fix Regression specs behind #15177 (#15221) 2026-10-09 03:37:00 +00:00
07e159549d fix(alerts): ask which query mode to save and fix stale edit data (#15090)
Co-authored-by: Neha P <neha@openobserve.ai>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-10-08 17:51:57 +00:00
Vamsi Karthik R 92a62c2d6c test(rum): end-to-end coverage for Product Analytics and its schema-state fixes (#15131) 2026-10-07 10:05:59 +00:00
ktx-akshay 2819871e09 test: E2E regression coverage for variables sharing a name prefix (#14479) (#15165) 2026-10-07 09:58:19 +00:00
Vamsi Karthik R 5eff5b2a30 test(traces): regression coverage for the search window and error state fixes in #15130 (#15136) 2026-10-07 04:35:37 +00:00
Omkar Kesarkhane 7d70a13e02 fix(rum): search a session's traces by server arrival time when it has no replay (#15106) 2026-10-05 16:55:23 +00:00
Neha P 11e569ff1c fix(functions): stop offering a body fix-up for failures it cannot fix (#15069) 2026-10-05 09:54:47 +00:00
Neha P 5cd1d86469 fix(functions): repair an import fix-up that could not write, with E2E + API coverage (#15043) 2026-10-02 07:41:47 +00:00
Neha P ee32552c6f test(regression): cover 11 closed logs, streams, pipeline and enrichment bugs (#14978) 2026-09-30 09:30:33 +00:00
5fcf871ccd test(autoe2e): generated E2E tests for #14796 (alert-destination-usage) (#14850)
Co-authored-by: Shrinath-O2 <214651540+Shrinath-O2@users.noreply.github.com>
Co-authored-by: Vamsi Karthik R <vkarthik@openobserve.ai>
2026-09-29 13:01:00 +00:00
Vamsi Karthik R 1b50f7ca0a test: regression coverage for retested bug fixes (#14376, #14317, #14648, #11283, #14636, #14640, #14917) (#14927) 2026-09-28 19:46:23 +00:00
Neha P db61c88aa6 test(regression): cover 10 closed logs, pipeline and enrichment bugs (#14932) 2026-09-28 13:33:31 +00:00
Vamsi Karthik R 33c0239410 test: cover the bug fixes confirmed by retest, and drop the #13243 workarounds (#14842) 2026-09-27 19:35:38 +00:00
Neha P 0cbdb03dc2 test: regression coverage for 29 closed Needs-Automation issues (#14883) 2026-09-25 12:42:57 +00:00
Neha P fab9cabace test: regression coverage for 4 closed Needs-Automation issues (#14873) 2026-09-24 16:12:38 +00:00
Neha P 8276fef44f test: regression coverage for 5 closed Needs-Automation issues (#14847) 2026-09-24 09:56:48 +00:00
Bhargav 1dc8a255c4 test: LLM provider type & API key handling regression (o2-enterprise#2598) (#14435) 2026-09-23 08:27:13 +00:00
ktx-akshay b4c7df2342 test: cover dashboard panel cache retention on browser refresh (#14699) 2026-09-22 10:28:38 +00:00
Bhargav c8184b3101 fix(tests): give each realtime pipeline its own source stream (#14731) 2026-09-22 09:08:04 +00:00
Neha P 80d9d6ff91 test: regression coverage for 4 closed Needs-Automation bugs, and repair the alert wizard's stream select (#14689) 2026-09-21 12:17:22 +00:00
ktx-akshay 8f7d795416 test: add regression for importing a dashboard with panel layout.i = 0 (#14442) 2026-09-21 06:31:40 +00:00
Shrinath Rao b2e058a202 test: regression coverage for 4 Needs-Automation issues (1 API + 3 Logs UI regression) (#14538) 2026-09-21 06:14:44 +00:00
Neha P 8dcaf5e8e8 test: cover report folders (#11219) and the incident status filter (#12611) (#14646) 2026-09-20 08:33:59 +00:00
Neha P b607d0a623 fix(alerts): repair three clone-dialog bugs, and cover the clone surface (#14621) 2026-09-18 14:44:18 +00:00
Neha P 5452617373 test: regression coverage for 9 closed Needs-Automation bugs, and harden the stream-select and query-editor page objects (#14550) 2026-09-16 17:35:56 +00:00
Bhargav 69cf2422ed test: composite alerts regression coverage (o2-enterprise#2598) (#14433) 2026-09-16 09:50:37 +00:00
Neha P 0104b53ffe test: regression coverage for 10 closed Needs-Automation bugs, and rebalance the Logs shard (#14494) 2026-09-16 08:07:59 +00:00
90a40867ed fix(metrics): give a settled-empty Explorer card one bounded recheck (#14465)
Co-authored-by: Neha P <neha@openobserve.ai>
Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech>
2026-09-14 10:20:36 +00:00
Neha P af07d66c52 test: run the Search History regression from the ENT matrix only (#14436) 2026-09-11 07:03:58 +00:00
Omkar Kesarkhane 94047dc0b7 fix: render streaming aggregation results as they arrive (#14303) (#14324) 2026-09-09 13:27:26 +00:00
Neha P 6b6572f8e8 fix(logs): retain the query re-applied from Search History (#14286) 2026-09-09 06:42:55 +00:00
Neha P 8ef549c3e3 test: cover builder saved views applied on the build tab (#14245) 2026-09-07 17:34:18 +00:00
Neha PandShrinath Rao 758793481e test(logs): cover multi-stream match_all pagination (#14108)
Co-authored-by: Shrinath Rao <shnath@openobserve.ai>
2026-09-02 13:19:26 +00:00
Shrinath Rao 2834186b8a test(e2e/alpha1): unique per-run alert destination/template so Add Alert button enables (#13783)
## Why

After #13776 merged, the alpha1 **RegressionSet** shard still failed —
but on a **new, different** cause than #13776 fixed. All 4
`alerts-regression` tests died at the very first step
(`clickAddAlertButton`) because the button was **disabled**:

```
<button disabled aria-disabled="true"
        title="No destinations available"
        data-test="alert-list-add-alert-btn">
19 × locator resolved to disabled  → toBeEnabled() timed out after 15s
```

## Root cause (reproduced live on the RegressionSet org, auto_org_2)

[`AlertList.vue`](web/src/components/alerts/AlertList.vue#L51) disables
the Add Alert button while `destinations.length === 0`:
```vue
:disabled="!destinations.length || !templates.length"
:title="!destinations.length ? t('alerts.noDestinations') : ''"
```

On the **shared** cloud org the **fixed** names `e2e_promql_dest` /
`e2e_promql_template` were stuck ghost records — a concurrent run's
cleanup couldn't fully delete them (UI delete timed out /
`destinations_templates_fk` 500). So the beforeAll create returned `400
"already exists"`, yet the destinations list loaded **empty**, keeping
the button disabled through the 15s `toBeEnabled` wait. Not a product
regression — the org simply had no *loadable* destination.

This is the same **shared-org fixed-name collision** class fixed for
streams in #13776.

## Fix

- `e2e_promql_dest` / `e2e_promql_template` → `..._<RUN_TOKEN>` (unique
per run), so the beforeAll always creates a real, loadable destination.
Keeps the `e2e_promql_` prefix so `cleanup.spec.js` still reclaims them.
- Gate the beforeAll on the destination actually appearing in the
`/alerts/destinations` list API before tests run, so the button is
reliably enabled (`destinations.length > 0`) instead of racing the
fetch.

## Verification (alpha, RegressionSet org auto_org_2 — reproduced 100%
before)

- Before: `Add Alert` disabled → `toBeEnabled` 15s timeout → 4/4 fail.
- After: `Destination confirmed in list API | e2e_promql_dest_<token>` →
button enabled → **alerts-regression 5/5 pass** (#9967, #10899, #10872,
#10110, #10472); alerts saved for both `>=` and `<=`.

## Scope
OSS-only test file. Picked up by the ENT alpha1 workflow the same way as
#13776 (checks out opensource `main`, or dispatch with
`o2_opensource_repo=test/alerts-regression-destinations-gate`).
2026-08-12 11:57:01 +00:00
Shrinath Rao 6650950a50 test(e2e/alpha1): fix share-link redirect origin and cloud metrics ingest auth (#13776)
## Why

The scheduled **Alpha1 (Cloud)** e2e run failed on three jobs
([o2-enterprise run
31547517666](https://github.com/openobserve/o2-enterprise/actions/runs/31547517666)):
**Logs-Features** (7), **Functions** (11), **RegressionSet** (4).
Root-caused each against a freshly-deployed alpha; two are genuine test
heals, one was pure environment skew.

## Root causes & fixes

### 1. Logs-Features — shareLink + monaco-query-prefill (7 tests) ✅
fixed
On cloud the app builds the share link from its **public** base URL
(`*.external.zinclabs.dev`), while the tests authenticate against the
ingress host (`*.internal.zinclabs.dev`). `page.goto(sharedUrl)`
navigated **cross-origin**, dropped the auth cookies, and bounced to Dex
— so every post-redirect state assertion read back `null`.

**Fix:** re-point the short URL's origin to `ZO_BASE_URL` in
`clickShareLinkAndGetUrl()` (right next to the existing HTTP→HTTPS
"maintain auth context" step). `/short/<id>` resolves identically on the
backend regardless of ingress host, so only the origin changes and the
session stays valid. Same-origin envs (localhost / matching deployed
host) are untouched.

### 2. RegressionSet — alerts Bug #9967 PromQL (1 test) ✅ fixed
`ingestMetricsData()` authenticated with `ZO_ROOT_USER_EMAIL:PASSWORD`,
but **cloud ingestion needs `email:passcode`**. The ingest silently
401'd → the `e2e_test_cpu_usage` metrics stream was never created → the
PromQL alert flow timed out selecting it.

**Fix:** build auth via `getAuthHeaders()` (passcode on cloud, root
creds on self-hosted), refresh the passcode from the live browser
session first, and poll until the stream is indexed so the wizard's
stream-select doesn't race WAL lag.

### 3. Functions — radio → segmented toggle (11 tests) — no change
needed
The page object was already migrated to the segmented toggle in #13766;
these failures were the **alpha frontend lagging the merged test code**.
Green after the redeploy with zero code change.

## Verification (against alpha, `auto_org_1`)
- `shareLink.spec.js` + `monaco-query-prefill.spec.js` → **11/11
passed**
- `alerts-regression.spec.js` (full) → **5/5 passed** (#9967, #10110,
#10899, #10872, #10472)
- `Functions/js-transform-type.spec.js` → **7/7**,
`row-expansion.spec.js` → green

## Scope
OSS-only (test files). The ENT `playwright_alpha1.yml` checks out
opensource at `main`, so merging makes the next scheduled run pick this
up. It can also be pre-verified by dispatching that workflow with
`o2_opensource_repo=test/alpha1-e2e-heals-0812`.
2026-08-12 06:35:48 +00:00
Shrinath Rao cb78ef36fd test(sentinel): complete POM compliance — Dashboards + Correlation (follow-up to #13727) (#13735)
## Summary

Completes the Sentinel **Page Object Model** compliance sweep of the
Playwright suite (follow-up to #13727, which covered the non-Dashboards
shards). Every raw `page.locator(...)` / `page.getBy*(...)` selector —
in **actions and assertions** — is relocated out of the spec files into
the relevant page object; specs now call page-object methods/getters
only.

**Result: 0 raw fixture-`page` selectors across the entire
`playwright-tests` suite** (single-line *and* multi-line, verified with
a dotall/multiline scanner). Together with #13727, the whole suite is
POM-clean.

## What's in this PR

**Dashboards shards — ~1,460 selectors** relocated into their page
objects (`dashboard-panel-configs/actions/edit/time`, `dashboard-chart`,
`dashboard-variables-scoped`, `dashboard-filter`, `dashboard-drilldown`,
`crossLinkPage`, `visualise`, `dashboard-share-export`,
`dashboard-create`, `dashboard-settings`, `dashboard-variables`):

| Shard | selectors |
|-------|----------:|
| Dashboard-Config-Settings (11 specs) | ~255 |
| Dashboards-Variables (12 specs, 4 batches) | ~693 |
| Dashboards-Tables (7 specs) | ~127 |
| Dashboards-Charts (9 specs) | ~81 |
| Dashboards-Core + Visualize (10 specs) | ~144 |
| Dashboards-Settings + Panel-DateTime (8 specs) | ~107 |
| Dashboard-Regression (1 spec) | ~52 |

**Correlation UI specs** (3 new `Correlation/*.ui.spec.js` that arrived
via main's merge, after the original audit) — converted into a new
`correlationDrawerPage` + an extended `correlationSettingsPage`, with
`PageManager` wired into specs that previously used none.

**Audit stragglers** the original **single-line** audit grep
undercounted — multi-line `page\n.locator(...)` chains in
`logstable.spec.js` (→ `logsPage.getTableHeaderByField()`) and
`dashboard-streaming.spec.js` (2 add-panel selectors).

**AI-review fixes** (DeepSeek, on this PR) — removed 2 dead-code
duplicate getters + 1 redundant method alias (merge artifacts from the
sequential batch commits).

One Node-context `console.log` (`dashboard-general-setting`'s
`beforeEach`) → `testLogger.info`.

## Approach

Nearly every Dashboards spec shares the same page objects, so the work
was done in **sequential batches** (one committed, verified unit at a
time) to keep page-object edits conflict-free. 13 commits, mapping 1:1
to those batches.

## Not changed (by design)

- **`waitForTimeout`** left as-is — logged in the audit, not rewritten
(per direction).
- **Browser-context code inside `page.evaluate()` /
`waitForFunction()`** (`document.querySelector`, `window.*`) left as-is
— it runs in the page's JS engine, not Node, so `testLogger` (a Node
module) can't be called there. *No `console.*` remained in dashboards
specs*; the Node-context ones were converted to `testLogger`.
- **`newPage.locator(...)`** on separate popup `Page` instances left
as-is (not the fixture `page`).

## Verification

- **0 raw fixture-`page` selectors** across all specs — single- and
multi-line, comments stripped.
- All changed `.js` files pass `node --check`.
- **CI-gated** for browser execution (no local runs), consistent with
#13727. The enterprise E2E crosscheck already passed against this PR.

## Stats

82 files changed (+3,355 / −2,211) — 61 specs, 21 page objects.
Selectors **moved into page objects, not deleted**.
2026-08-11 06:09:06 +00:00
Shrinath Rao 82d14e8458 test(sentinel): POM compliance across Playwright suite (non-Dashboards) (#13727)
## What & why

Sentinel (Council of Agents) audit-driven **Page Object Model
compliance** across the Playwright suite. Many specs (a lot added
recently, some AI-generated) had raw `page.locator(...)` /
`page.getBy*(...)` selectors directly in spec files — including inside
`expect(...)` — which the Sentinel flags as CRITICAL. This PR relocates
those selectors into their page objects and calls page-object
methods/getters instead.

A full audit of **all 256 specs** was generated first (stored locally
under `tests/ui-testing/MD_Files/sentinel-audit-2026-08-10/`, which is
gitignored). Original totals: **1,609** raw selectors, **190** inside
assertions, plus console/testLogger items.

## Scope of THIS PR (non-Dashboards)

Every non-Dashboards spec is now **100% raw-selector clean** (verified:
0 occurrences). Shards covered:

- **GeneralTests, Logs (Core/Builder-Advanced/Features/Regression),
Traces (+Reg), Streams (+Reg), Metrics (+Reg), Pipelines, Reports
(+Reg), Anomaly, Login/auth, auth-warm, and the unmatched Alerts
specs.**
- `console.*` → `testLogger` where it was Node-context (kept `console.*`
**inside `page.evaluate()`** — that's browser context; `testLogger`
doesn't exist there).
- `testLogger` import/use added where missing.
- **`waitForTimeout` intentionally left as-is** (logged in the audit,
not rewritten — per direction).

## Deferred to a follow-up PR

The **heavy Dashboards shards** (Variables 693, Config-Settings 255,
Tables 127, Charts 81, Core 79, Visualize 65, Settings 52,
Panel-DateTime 55, Dashboard-Regression 52 raw selectors) are **not** in
this PR — they're the bulk of the work and will be a separate, focused
pass. (dashboard-streaming console cleanup is included here.)

## Verification

Fixes were applied and executed **shard by shard** against a local env,
gated green before commit where the env allowed:

| Group | Local result |
|-------|--------------|
| GeneralTests (edited specs) | 52 passed / 11 skipped / 0 failed |
| Logs (shareLink, logsQuickPick, indexquery) | 21 passed |
| Traces / Streams / Metrics | 49 passed / 2 skipped / 0 failed |
| Pipelines | 56 passed / 17 skipped / 0 failed |
| logs-bugs :548, dashboard-streaming | verified not regressed
(isolation) |

**Alerts create-wizard specs** (Alerts shard, Alerts-Regression,
unmatched Alerts) could not be gated locally — the alert-creation
wizard's stream popover times out on this env **on unmodified code too**
(reproduced on original, test `:363`), so those refactors are 1:1
selector→method mappings, syntax-clean (`node --check`), and rely on CI
to gate.

Every changed `.js` passes `node --check`. `waitForTimeout` unchanged;
no behavior changes intended.

## Stats
51 files changed. Selectors moved into page objects, not deleted.
2026-08-10 15:30:21 +00:00
Shrinath Rao 7ab93c04d5 test(reports): heal reports-regression timezone spec (edit-prefill race + toast selector) (#13724)
## What

Heals the Reports regression spec `reports-regression-bugs.spec.js` →
*"Report save should not shift timestamp by timezone offset"*
(@bug-11231), which was failing deterministically (all 4 retries) in
both the OSS and ENT **Playwright Regression** runs:

- OSS:
https://github.com/openobserve/openobserve/actions/runs/31364820545
- ENT:
https://github.com/openobserve/o2-enterprise/actions/runs/31364817885

This is **test-only** — the product is unaffected (the historical #11231
fix and normal report save both work; a save actually succeeds in the
failing run).

## Root cause (two independent defects)

1. **Wrong success-toast selector (deterministic line-118 failure).**
The save assertion used `page.getByRole('alert')`. `OToast` renders the
**success** variant with `role="status"` — only **error/warning** toasts
get `role="alert"`
([`OToast.vue`](https://github.com/openobserve/openobserve/blob/main/web/src/lib/feedback/Toast/OToast.vue)
`rootRole`). So the assertion could never match a successful save and
timed out. → now asserts on the success toast
`[data-test-variant="success"]`, consistent with the rest of the file.

2. **Edit-prefill race (line-84 failure, the one captured in the
trace).** On the edit flow, step-1 `Continue` could fire before the
async edit prefill (`form.reset()` after the report GET) populated
folder/dashboard/tabs. `goToStep()` then failed validation and silently
stayed on step 1, so the schedule toggle never rendered and the test
timed out looking for it. → `createReportContinueButtonStep1()` now
retries the click until the schedule step is actually reached,
**keeping** the original post-advance settle so downstream step-2
interactions (schedule-later toggle, step-2 Continue) don't race.

Also dedups the spec's inline date/time entry through the existing
`createReportDateTime()` helper (logic unchanged).

## Verification (local, `localhost:5080`)

| Suite | Result |
|---|---|
| `reports-regression-bugs.spec.js` (target) | ✅ stable across repeated
runs (1 + 3× repeat-each) |
| `reportsScheduleLater.spec.js` | ✅ 6/6 |
| `reportsScheduleNow.spec.js` + `reportCsvMediaType.spec.js` | ✅ 13/13
|

The two changed page-object methods are shared with the sibling Reports
specs above; all pass, confirming no regression.

## Scope

The spec lives in OSS `tests/` and is tree-merged into the ENT
regression run, so this single OSS change fixes both pipelines. No ENT
repo change required; the ENT regression will be re-triggered against
this branch.
2026-08-10 11:27:25 +00:00