mirror of
https://github.com/openobserve/openobserve.git
synced 2026-11-04 08:09:27 +00:00
fddf2cf2640ddfb00eaaa3f34e8942511b2ba430
46
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
54fdbad0d8 |
fix: reports module form migration with zod (#12949)
- form migration with zod schema for reports module --------- Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech> |
||
|
|
00b910a382 | fix: remove quasar leftovers (#13180) | ||
|
|
15541e3c1a |
fix(ci): stop rerun-detection crash + logs-9754 delete/re-ingest race (#13167)
Fixes two separate regression-suite CI failures observed in the
scheduled Playwright Regression run (surfaced on both OSS and ENT).
## 1. `Check if this is a rerun` step crashes on reruns
On a rerun the step queries the jobs API and iterates `.jobs[]`. When
the API returns a body **without** a `.jobs` key (rate-limit / error
response), jq hits `Cannot iterate over null`, exits 5, and under `bash
-e` the whole step dies — **skipping the entire test run**.
```
jq: error (at <stdin>:5): Cannot iterate over null (null)
##[error]Process completed with exit code 5.
```
`playwright.yml` was already hardened (`:-0` defaults + `2>/dev/null`),
but the fix was never backported to `playwright_regression.yml` — the
workflow that actually failed. This guards the jq with `(.jobs // [])` +
`2>/dev/null || echo "0"` and adds an explicit fallback to
`rerun_type=all` (run all tests — safe) when the counts aren't usable,
so the step can never abort the run.
## 2. `logs-9754.spec.js` delete → re-ingest race
The primary failure is a transient `expectLogsTableVisible()` timeout on
the `@P0 @highlighting` test. What turned that flake into a hard
failure: the describe runs in `serial` mode, so a failed test retries
the **whole block**. `afterAll` deletes the shared
`e2e_highlighting_test` stream but returns immediately, so the retry's
setup re-ingests into a still-deleting stream:
```
{"code":400,"message":"Error# stream [e2e_highlighting_test] is being deleted"}
```
The 5×3s setup retry window couldn't outlast the deletion, cascading
every retry to failure. `afterAll` now blocks on the existing
`waitForStreamDeletion()` helper so the next attempt starts from a clean
slate and Playwright's built-in retry becomes effective again.
## Changes
- `.github/workflows/playwright_regression.yml` — harden rerun-detection
jq + explicit fallback
-
`tests/ui-testing/playwright-tests/RegressionSet/Logs/logs-9754.spec.js`
— `afterAll` waits for stream deletion to settle
The ENT side of the workflow fix is in a companion PR. The spec fix
lives only here (the test folder is merged into ENT at CI time).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com>
|
||
|
|
cd634bae43 |
test: heal flaky logs field-values-cache regression test (readiness gate) (#12956)
## What Heals the flaky **\`should fetch fresh field values when switching streams\`** (`@fieldValuesCache @P1 @regression`) test in `RegressionSet/Logs/logs-bugs.spec.js`, which failed the `Logs-Regression` job in [o2-enterprise run 28454057830](https://github.com/openobserve/o2-enterprise/actions/runs/28454057830/job/84328391696). ## Root cause The test ingests a unique `service_name=svc-automate-<runId>` into the **shared** `e2e_automate` stream, then immediately drives the UI field-values panel — with **no readiness gate** confirming that value is searchable yet. Freshly-ingested data isn't queryable instantly (WAL → index lag), so the `_values` call returns `svc-automate-*` values from earlier runs/retries but misses the just-ingested one: ``` Error: Expected stream1 values to contain svc-automate-1782832273253, got: svc-automate-17828322504262 ``` Playwright retries amplify it — each retry adds another `svc-automate` value to the shared stream while still missing the current run's value, so all retries fail. > Note: the CI job's attempt-2 then crashed on a `jq: Cannot iterate over null` error in the rerun-detection step. That is a **separate, already-fixed** issue — current `main` already has `actions: read` on the job + jq guards; the failing run executed a stale pre-fix workflow snapshot (GitHub re-runs reuse the original attempt's YAML). No workflow change is needed here. ## Fix - Add `waitForFieldValueSearchable()` to `utils/data-ingestion.js` — polls `_search` until the exact field value is returned (the proven readiness-gate pattern, value-level rather than row-count level). - Gate both the stream1 and stream2 ingested values before the UI assertions. ## Verification Run locally against a local OpenObserve with `--repeat-each=3`: ``` Stream1 field values: ["svc-automate-...0702","svc-automate-...4762"] # accumulates (reproduces CI pollution) ✓ Stream1 shows correct value: svc-automate-1782833946762 # current value always present now ... 3 passed (1.0m) ``` The accumulating `svc-automate-*` values across repeats reproduce exactly the shared-stream pollution seen in CI, and the gate ensures the current run's value is always present. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
8f81d41a80 |
test: heal logs Bug #4426 wrap-toggle assertion (switch to Table tab) (#12937)
## What Heals the wrap-toggle assertion in the **Logs-Regression** shard — the `text wrap toggle should not cause column misalignment on saved view switch` test (Bug #4426) in `logs-bugs.spec.js`. ## Root cause The test opens the log detail sidebar and asserts the wrap toggle is visible. But the sidebar opens on the **JSON tab by default** (Bug #9724), and the wrap toggle only renders in the **Table tab**. So the assertion (`verifyWrapToggleVisibleInTableTab`) always waited out its full `expect` timeout against the hidden toggle, then fell into the `catch` and logged: ``` Wrap toggle not found in current log detail: Timed out 30000ms waiting for expect(locator).toBeVisible() Locator: locator('[data-test="log-detail-wrap-values-toggle-btn"]') Received: hidden ``` This is the `Wrap toggle not found` warning visible in the scheduled Logs-Regression run [28373343106](https://github.com/openobserve/openobserve/actions/runs/28373343106). The toggle assertion never actually verified anything and burned ~30s of the shard's wall-clock as noise. ## Fix Click the Table tab before asserting the toggle's visibility, so the toggle actually renders and the check is meaningful (and fast). ```js await pm.logsPage.clickLogDetailTableTab(); await pm.logsPage.verifyWrapToggleVisibleInTableTab(); ``` ## Verification - Targeted run against a local OpenObserve instance: **passes in 10.9s**, now logging `✓ Wrap toggle is visible in Table tab` instead of the timeout warning. - Full Logs-Regression shard (all 4 spec files, 67 tests) run locally beforehand: **67/67 passed** — no regressions. ``` npx playwright test playwright-tests/RegressionSet/Logs/logs-bugs.spec.js \ -g "text wrap toggle should not cause column misalignment" ✓ ...logs-bugs.spec.js:1818:3 › ... @bug-4426 (10.9s) 1 passed ``` ## Note The linked run's job-level failure was a runner **shutdown/cancel signal** (infra reclaim) on the Logs-Regression shard plus a separate failure in the `Merge Reports and Upload to TestDino` job — neither is a test-code failure (all 67 logs tests pass locally). This PR addresses the one genuine test-level defect surfaced in that run. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
68ff976565 |
test: heal Logs-Regression failures (log detail sidebar + stream race) (#12908)
## What Heals the **Logs-Regression** E2E shard failures from scheduled run [28227009440](https://github.com/openobserve/openobserve/actions/runs/28227009440/job/83622550234) (3 failed, 1 flaky). ## Root cause analysis | # | Test | Symptom | Cause | |---|------|---------|-------| | 1 | `logs-9754.spec.js:276` — log detail sidebar @P1 | `waitFor [data-test="log-table-column-0-source"]` 30s timeout in `openLogDetailSidebar` | First result cell renders as the FTS **body/message** column, not `source`, so the exact selector never appears | | 2 | `logs-regression.spec.js:1150` — JSON tab default (#9724) | Same `openLogDetailSidebar` selector, 45s click timeout | Same as #1 | | 3 | `logs-9754.spec.js:195` — preserve characters @P0 | `selectStream: Failed to find stream "e2e_highlighting_test" after 5 attempts` | **Cascade**: test #1 fails → serial block retries → `afterAll` `deleteStream` from the prior attempt is still settling → re-ingest returns `400 "stream [...] is being deleted"` → stream never re-appears | | 4 | `logs-regression.spec.js:60` — saved views (#9388) | `log-search-index-list-add-log-field-btn` not visible | Hover-revealed add button stayed below the fold; single re-hover missed | `openLogDetailSidebar` is the dominant root cause — it directly explains #1 and #2, and #1 triggers the serial-block retry that produces the #3 cascade. ## Fixes 1. **`openLogDetailSidebar`** — target any first-row cell via the `[data-test^="log-table-column-0-"]` prefix instead of the exact `...-source` cell. This mirrors the pattern already used by `clickLogTableColumnSource` and `waitForSearchResults`, which carry the same FTS-body-column note. 2. **`logs-9754` setup** — retry ingestion (up to 5×, 3s apart) when the response says the stream `is being deleted`, so a serial-block retry no longer cascades into "stream not found". 3. **`clickAddFieldToTableButton`** — `scrollIntoViewIfNeeded` + re-hover with retries so the hover-revealed add button reliably surfaces (#9388). ## Files - `tests/ui-testing/pages/logsPages/logsPage.js` - `tests/ui-testing/playwright-tests/RegressionSet/Logs/logs-9754.spec.js` ## Validation - `node --check` passes on both edited files. - Full Playwright run deferred to CI / local verification (changes are selector + retry hardening only; no production code touched). 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
3b3f6b9df7 |
fix(test): harden SDR + Logs regression tests against CI render/index lag (#12893)
Two clusters of CI-only flakes — **every affected spec passes locally**;
all failures reproduce only under CI load (slow indexing /
re-rendering). All fixes are in test page-objects / setup — no product
or assertion changes.
## 1. SDR verification (o2-enterprise#2022, `e2e / SDR` — 7 failed)
`ingestionTime{Drop,Hash,Redaction}`, `queryTime{Drop,Hash,Redaction}`,
`multipleSDRPatterns` all died with `Field <name> should be visible but
was not found` (`foundLog === null`).
**Cause:** the verification helpers used **row count** as the readiness
signal for freshly-ingested logs. `fetchAllLogTexts` returned the moment
`minCount` rows rendered (the loose `tbody tr` fallback could even count
non-data rows), and `verifySingleFieldInLatestLog` broke on the first
non-null row — so under load they asserted against a partial/stale
result set before the fields were searchable. The per-field loop throws
on the first field, so the error always named the first field
(`website_url`/`user_email`/`multi_data`), masking the real cause.
**Fix (`sdrVerificationPage.js`):** make readiness content-aware —
`fetchAllLogTexts` takes `requiredFields` and retries until every
required field actually appears; `verifyMultipleFields` passes all
non-dropped fields; `verifySingleFieldInLatestLog` gates its retry loop
on field presence when expected.
## 2. Logs regression (scheduled Logs-Regression on `main` —
[OSS](https://github.com/openobserve/openobserve/actions/runs/28208045315)
/
[ENT](https://github.com/openobserve/o2-enterprise/actions/runs/28207989646),
3 failed + 1 flaky)
- **logs-9754** (`detail sidebar` / `unclosed brackets`): empty/late
table & `selectStream` not finding the stream — the setup only waited
for the stream to *exist*, not for its rows to be searchable. Gate the
setup on `waitForStreamData` (polls the search API).
- **#9724** (`detail sidebar JSON tab`): row resolved but the table was
still re-rendering → plain click timed out on "element not stable".
Harden `openLogDetailSidebar`: wait for a visible row, scroll into view,
click with a force fallback.
- **#9388** (`saved views stream switching`): the hover-revealed
add-field button was lost before the click. `clickAddFieldToTableButton`
now re-hovers the field row and waits again before failing.
## Verification (local, enterprise build `localhost:5080`)
| Suite | Result |
|-------|--------|
| 7 SDR specs | 14 passed |
| logs-9754.spec.js | 6 passed |
| logs-regression #9388 + #9724 | 2 passed |
```
npx playwright test playwright-tests/SDR/<spec>.spec.js --project=chromium
npx playwright test playwright-tests/RegressionSet/Logs/logs-9754.spec.js --project=chromium
npx playwright test playwright-tests/RegressionSet/Logs/logs-regression.spec.js -g "9388|9724" --project=chromium
```
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
|
||
|
|
0afbe40fe4 |
test: fix flaky Alerts OSelect dropdowns (click trigger, not root div) (#12869)
## Problem The scheduled **main** Playwright Regression run failed in the **Alerts-Regression** shard ([run 28097849118](https://github.com/openobserve/openobserve/actions/runs/28097849118/job/83192928864)) with 2 tests failing on the **same** locator `[data-test$="-popover"] [data-test$="-option"]` (dropdown options never found): - `alerts-bugs.spec.js` › "Template should not appear twice in override template input" (`@bug-10110`) - `alerts-regression.spec.js` › "Bug #9967: PromQL alert creation" (`@bug-9967`) ## Root cause The alert form selects were migrated to the **OSelect** (reka-ui popover) component. OSelect forwards the consumer's `data-test` onto an **inner `<button data-test="...-trigger">`**, while the root element is a plain `<div>`. Both tests clicked the **root `<div>`**, which does **not** toggle the reka popover — `aria-expanded` stays `false`, the popover never opens, and the option locator times out. This is not caused by #12855; it reproduces on an older build too. The codebase already had the correct pattern elsewhere (group-by select clicks `[data-test$="-trigger"]`). ## Fix - New shared helper `openOSelectDropdown(page, rootLocator)` (`tests/ui-testing/pages/alertsPages/oselectHelpers.js`) that clicks the inner `-trigger` and **retries until `aria-expanded="true"`** — the reka trigger can open-then-close on a single Playwright click. - `alertsPage.openAdvancedTemplateOverrideSelect()` uses the helper; the spec now calls that page-object method (no raw locator in the spec). - Routed **all 8** destination-dropdown open sites in `alertCreationWizard.js` through the same helper (DRY; the same latent bug affected every one). ## Validation (local, against running o2) | Spec | Result | |------|--------| | `alerts-bugs.spec.js` | **4 passed** | | `alerts-regression.spec.js` | **5 passed** (incl. Bug #9967 PromQL) | Both originally-failing tests are green; no regressions across the changed destination sites. Passed a Sentinel code-quality review (0 critical). 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com> |
||
|
|
5e426a09c2 |
fix(tests): use generic selectors in AI regression test instead of rum-content-text (#12730)
## Summary - The AI integrations regression test (`datasources-regression.spec.js`) was using `.first()` to select the first integration in the sidebar, but manifest-backed rich-content cards placed at the top of each category render `AIRichSetupCard` or `AIIntegrationCard` — neither contains the `[data-test="rum-content-text"]` element that the test expects. - Fix: navigate directly to the "agno" child route and click the agno-specific tab (`[data-test="ai-integrations-item-agno"]`). Agno is a known stub integration without rich content that always uses the `CopyContent` fallback. ## Test plan - [ ] CI Playwright run: `Data Sources Regression Bug Fixes` suite passes on chromium --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
85a0e8d8a7 |
test: restructure RegressionSet/ into feature subdirectories (#12664)
## Summary - Moves 17 spec files from flat `RegressionSet/` into 8 feature folders: Alerts, Dashboards, General, Logs, Metrics, Pipelines, Streams, Traces - Merges `logs-regression-bugs-2.spec.js` (9 tests) into `Logs/logs-bugs.spec.js` (36 tests total), removing the duplicate file - Drops the redundant `-regression` suffix from filenames (e.g., `alerts-regression-bugs.spec.js` → `alerts-bugs.spec.js`) - Updates `.github/workflows/playwright_regression.yml` matrix with new subdirectory paths - Adds missing `logs-ent.spec.js` and `traces-ent.spec.js` to CI shards ## Test plan - [ ] CI: Logs-Regression shard runs all 5 Logs files (merged bugs file + ent) - [ ] CI: All 8 shards resolve correct file paths under `RegressionSet/<Feature>/` - [ ] No file references the deleted `logs-regression-bugs-2.spec.js` 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
3c12561efd |
fix: add missing POM locators and fix Monaco keyboard input in regression tests (#12687)
## Summary
- Fixes 2 hard-failing regression tests (traces autocomplete + pipeline
destination save)
- Improves 6 flaky pipeline timeout tests
## Root causes
### Pipeline destination save test (line 513)
`destinationListAddBtn`, `destinationTypeCard`, `toastError`, and
`toastSuccess` were referenced in the test but never defined in
`PipelinesPage`. Added the four missing locators with their verified
`data-test` attributes.
### Traces autocomplete test (line 139)
The test clicked `.view-lines` (a display-only div) and used
`page.keyboard.type()`, but Monaco only routes keyboard input through
its hidden `.inputarea` textarea. Switched to Monaco's
`editor.trigger('keyboard', 'type', {text})` API which properly updates
the editor model and fires the autocomplete provider.
### Pipeline timeout tests (lines 73, 181, 289, 368, 451, 478)
Reduced `addPipeline` timeout from 30s to 15s so tests fail faster
instead of hanging when the pipeline page doesn't load. Combined with
`slowMo: 500`, the old 30s timeout amplified cascading delays in serial
test mode.
## Verification
Both hard-failure tests pass against the pentest environment:
- `traces-regression-bugs.spec.js:139` — PASSED (editor content:
"select", suggestions: true)
- `pipeline-regression.spec.js:513` — PASSED (no duplicate
notifications)
## Test plan
- [x] Traces autocomplete test passes
- [x] Pipeline destination save test passes
- [ ] Pipeline timeout tests run within CI timeout (improved, not fully
resolved)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
|
||
|
|
291903345e |
test: add E2E regression tests for 10 Needs-Automation issues (#12111)
## Summary Adds Playwright E2E regression tests for **10 closed `Needs-Automation` issues** across alerts, logs, pipelines, data sources, landing page, and reports. This is Batch 1 of 3. All tests pass against the dev environment (`https://dev.o2aks1.internal.zinclabs.dev`). ## New Spec Files | File | Issue | Description | |------|-------|-------------| | `datasources-regression.spec.js` | [#11682](https://github.com/openobserve/openobserve/issues/11682) | AI integration credentials persist on tab re-click | | `landing-regression.spec.js` | [#11604](https://github.com/openobserve/openobserve/issues/11604) | Slack button opens functional page (not blank) | | `reports-regression-bugs.spec.js` | [#11231](https://github.com/openobserve/openobserve/issues/11231) | Report timestamp not shifted by timezone on save | ## Tests Added to Existing Files | File | Issue | Description | |------|-------|-------------| | `alerts-regression-bugs.spec.js` | [#11315](https://github.com/openobserve/openobserve/issues/11315) | Bulk alert import dialog opens without premature errors | | `alerts-regression-bugs.spec.js` | [#4342](https://github.com/openobserve/openobserve/issues/4342) | Alert name with special characters `#`, `%`, `:` works | | `alerts-regression-bugs.spec.js` | [#4288](https://github.com/openobserve/openobserve/issues/4288) | SQL `default` keyword without quotes works in alerts | | `logs-regression-bugs.spec.js` | [#10103](https://github.com/openobserve/openobserve/issues/10103) | Explain Query close does not break results | | `logs-regression-bugs.spec.js` | [#8641](https://github.com/openobserve/openobserve/issues/8641) | Non-SQL multi-stream query works without error | | `logs-regression-bugs.spec.js` | [#5839](https://github.com/openobserve/openobserve/issues/5839) | Shared logs page displays searchbar correctly | | `pipeline-regression.spec.js` | [#11483](https://github.com/openobserve/openobserve/issues/11483) | No duplicate notifications on pipeline destination save | | `pipeline-regression.spec.js` | [#11267](https://github.com/openobserve/openobserve/issues/11267) | Evaluation template has proper UI styling | ## Removed - `traces-regression-bugs.spec.js`: removed 4 skipped tests for features unavailable in the dev environment ([#11392](https://github.com/openobserve/openobserve/issues/11392), [#11318](https://github.com/openobserve/openobserve/issues/11318), [#11280](https://github.com/openobserve/openobserve/issues/11280), [#11590](https://github.com/openobserve/openobserve/issues/11590)) ## POM Changes - `logsPage.js`: added `clickExplainQuery()` method (reuses existing `clickMoreOptionsButton()`) ## CI - `playwright_regression.yml`: added `DataSources-Regression` and `Reports-Regression` shards; added `landing-regression.spec.js` to `GeneralTests-Regression` ## Framework Compliance - All tests use PageManager via POM methods (no raw `page.locator('[data-test=...]')` for interactions) - All tests use `expect()` assertions (no conditional `test.skip()` for false positives) - All describe blocks have `beforeEach`/`afterEach` with structured logging - All tests tagged with `@bug-XXXXX`, `@P1`/`@P2`/`@P3`, `@regression` ## Test Plan - [x] All 10 tests pass individually against dev environment - [x] No framework violations (POM-first, no conditional skips) - [ ] CI run on this PR 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
af7d0e6696 |
test: harden rerun check step against GitHub API failures (#12486)
## Summary
- Adds `|| echo '{"jobs":[]}'` fallback on the `curl` call so a network
error or GitHub API rate-limit response never produces an empty/invalid
variable
- Adds `2>/dev/null || echo "0"` on both `jq` calls so a malformed API
response (non-JSON error body) falls back to `"0"` instead of
propagating a non-zero exit under `-eo pipefail`
- Changes the arithmetic comparison to `[ "${CURRENT_ATTEMPT_JOBS:-0}"
-eq "${TOTAL_MATRIX_JOBS:-0}" ]` with `2>/dev/null` so a `null` jq
output can't trigger "integer expression expected" and kill the step
**Failure mode fixed:** On re-runs, multiple matrix jobs query the same
GitHub API endpoint concurrently with the shared `GITHUB_TOKEN`. A
rate-limit `403` or transient network hiccup returns non-JSON, `jq`
exits non-zero, and with `set -eo pipefail` the whole "Check if this is
a rerun" step fails — blocking the job before any tests run.
**Degraded behaviour:** When the API is unavailable, both counts fall to
`0`, `0 -eq 0` → `rerun_type=all` → step succeeds → all tests run (same
as a normal rerun-all). The TestDino optimisation is skipped but nothing
is blocked.
Companion PR: openobserve/o2-enterprise#<ENT_PR>
## Test plan
- [ ] Trigger a re-run of a workflow run — "Check if this is a rerun"
step should pass even if GitHub API is slow/rate-limited
- [ ] Verify `rerun_type` is still correctly set to `failed` when the
API responds normally
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
|
||
|
|
a749599898 |
fix: update e2e selectors for O2 component migration (#12346)
Replace Quasar-based selectors with O2 component equivalents across
alerts, dashboard, logs, and streams page objects. Key changes:
- OSwitch: target -btn suffix on inner button
- OSelect: use -trigger/-popover/-option suffixes, fallback to
[role="option"][data-test-value] when parent has no data-test
- OCombobox: use placeholder-based locators where no data-test exists
- OInput: descendant input selectors, pagination text format handling
- OTable: custom bottom slot pagination format ("N Stream(s)")
---------
Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: ktx-akshay <akshay.patil@kiara.tech>
|
||
|
+5 |
ae22a74e62 |
feat: ux improvement main (#11838)
#11720 Design at: https://github.com/openobserve/designs/blob/main/dashboards/ux-improvement-dialog/design.md --------- --------- Co-authored-by: ktx-vaidehi <134508096+ktx-vaidehi@users.noreply.github.com> Co-authored-by: Abhay Padamani <141122205+ktx-abhay@users.noreply.github.com> Co-authored-by: Sai Nikhil <nikhil@openobserve.ai> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> Co-authored-by: ktx-akshay <akshay.patil@kiara.tech> Co-authored-by: Bhargav <BJP232004@GMAIL.COM> Co-authored-by: ktx-mihir <mihir.patel@kiara.tech> Co-authored-by: ktx-riya <riya.kukadiya@kiara.tech> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Omkar Kesarkhane <127078473+omkarK06@users.noreply.github.com> Co-authored-by: omkark06 <omkar@zinclabs.io> Co-authored-by: ktx-vaidehi <vaidehi.akhani@kiara.tech> Co-authored-by: ktx-abhay <abhay.padamani@kiara.tech> Co-authored-by: Shrinath Rao <shnath@openobserve.ai> |
||
|
|
e79cb30b30 |
test: move enterprise-only regression tests to *-ent spec files (#12298)
## Summary - Moves 3 enterprise-only tests out of OSS regression spec files into dedicated `*-ent` spec files - These spec files live in the OSS repo but are **not referenced in the OSS CI workflow** — they are picked up only by the enterprise CI - Fixes recurring failures in the OSS regression run caused by features that don't exist in OSS builds ## Why the tests were failing in OSS | Shard | Test | Root cause | |---|---|---| | Traces-Regression | Service graph side panel (Bug #11687) | `[data-test="traces-service-graph-toggle"]` is wrapped in `v-if="config.isEnterprise == 'true'"` in `SearchBar.vue` — element never renders in OSS → 45s timeout | | Logs-Regression | Scheduled Search navigation (Bug #7354) | `POST /api/{org}/search_jobs` returns **404** in OSS — endpoint is enterprise-only | ## Changes **New files:** - `tests/ui-testing/playwright-tests/RegressionSet/logs-regression-ent.spec.js` — Scheduled Search / `search_jobs` describe block (2 tests) - `tests/ui-testing/playwright-tests/RegressionSet/traces-regression-ent.spec.js` — service graph side panel test (Bug #11687) **Modified files:** - `logs-regression-9044-7354.spec.js` — removed the `#7354` Scheduled Search describe block; `#9044` scroll retention tests remain - `traces-regression.spec.js` — removed Bug #11687 service graph test block The companion PR in `o2-enterprise` adds these two files to the Logs-Regression and Traces-Regression shards of the enterprise workflow. ## Test plan - [ ] OSS regression CI (`playwright_regression.yml`) should pass — no more enterprise-only test failures - [ ] Enterprise regression CI picks up `*-ent.spec.js` files via the companion workflow PR 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|
|
2125f6e6da |
test: add 15 E2E regression tests for logs and traces bugs (#12084)
## Summary Adds Playwright E2E regression tests for 15 verified bug fixes. Tests are added to the existing CI matrix files: - 6 logs tests in `logs-regression-bugs-2.spec.js` - 9 traces tests in `traces-regression-bugs.spec.js` Also fixes framework compliance: all raw `page.locator()` calls moved to page object getter methods, missing assertions added, and flaky test logic fixed in #10595. ## Logs bugs covered | Bug | Description | |-----|-------------| | #11606 | include/exclude search term gets added at incorrect position | | #9339 | collapse or expand the indexlist wont redraw the histogram chart | | #7310 | search term appended instead of replaced in streams dropdown | | #5277 | column positions change back after re-running query | | #4426 | text wrap toggle causes column misalignment on saved view switch | | #4091 | cancel query button on visualize page | ## Traces bugs covered | Bug | Description | |-----|-------------| | #11816 | trace API called multiple times with auto search enabled | | #11815 | traces not sorted correctly when sorted by spans column | | #11531 | spans tab method column references non-existent field | | #11446 | incorrect duration value in logs detail traces tab | | #11384 | switching organization does not clear trace explorer results | | #11244 | timestamp values inconsistent between traces and logs | | #8978 | no cancel option while running a query in traces | | #4151 | trace values not visible on hover in dark mode | | #2887 | traces should be orderable by duration column | ## Files changed | File | Change | |------|--------| | `tests/ui-testing/pages/logsPages/logsPage.js` | 9 new getter methods for selectors | | `tests/ui-testing/pages/tracesPages/tracesPage.js` | 14 new getter methods for selectors | | `tests/ui-testing/playwright-tests/RegressionSet/logs-regression-bugs-2.spec.js` | 6 new tests, 0 raw locators, fixed #10595 | | `tests/ui-testing/playwright-tests/RegressionSet/traces-regression-bugs.spec.js` | 9 new tests, 0 raw locators | ## Test plan All 21 tests (15 new + 6 existing) pass against the dev environment. No new CI config needed — both spec files are already listed in `playwright_regression.yml`. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
7157b8feb3 |
test: add E2E regression tests for scroll retention (#9044) and undefined length (#7354) (#12061)
## Summary - Adds 2 new E2E regression test specs to `RegressionSet/` for recently fixed bugs - Adds 13 new page object methods to `logsPage.js` for scroll, pagination, scheduled search, and sidebar navigation https://github.com/openobserve/openobserve/issues/7354 https://github.com/openobserve/openobserve/issues/9044 ## Tests Added ### scroll-retention-9044.spec.js (3 tests) - Scroll resets to top when navigating page 1 → page 2 via page number button - Scroll resets to top when navigating page 2 → page 1 - Scroll resets to top via Next Page (>) button ### undefined-length-7354.spec.js (2 tests) - No "Undefined Length" error after navigating Logs → Scheduled Search → Streams → Logs - No console errors containing "undefined" or "length" after the reproduction path ## CI - Updated `playwright_regression.yml` to include both new spec files in the `Logs-Regression` matrix 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
f2f467b96e |
test: add regression tests for traces bugs #11687 and #11689 (#11718)
- #11689: Service Catalog clear search filter blanks page regression - #11687: Service graph side panel $ pattern fix verification - Added clickServiceCatalogTab() and clickFilterClearButton() to servicesCatalogPage --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
7eed0d0289 |
test: add regression E2E batch-1 for traces, logs, and alerts (#11706)
## Summary - Adds 8 bug regression tests across 3 spec files covering Traces, Logs, and Alerts - Expands page objects with `skipNavigation` support in LogsPage.selectStream() - Fixes `isSuggestionWidgetVisible()` in TracesPage to use `page.evaluate()` (CSS override bypass) - Integrates all 3 specs into the CI regression pipeline ## Tests Covered | Suite | Bug # | Description | |-------|-------|-------------| | Traces | #10743 | Stream persistence across navigation | | Traces | #11580 | Query editor resets after stream type switch | | Traces | #11217 | Trace editor autocomplete when typing | | Logs | #10821 | Quick mode toggle click interaction | | Logs | #10595 | Single row expansion after run query | | Logs | #9049 | Decimal values rejected in datetime picker | | Alerts | #10110 | Template not duplicated in override input | | Alerts | #11577 | Preview chart renders with numeric y-axis | ## Test Results - **8 passed, 0 skipped, 0 failed** against dev env 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
5d86357fdd | test: add regression tests for same-dashboard drilldown-URL clobbering (#11661) | ||
|
|
c41779f779 |
test: add alerts stream-switching regression tests for 5 canvas/graph bugs (#11651)
## Summary - Adds 18 new POM methods to `alertsPage.js` for stream-type/query-mode coherence verification, chart state assertions, query editor interaction, and aggregation field filtering - Adds 5 helper methods to `alertCreationWizard.js` for full editor open/close, stream switching, and query execution - Adds new regression spec `alerts-stream-switching-regression.spec.js` covering 5 closed bugs: | Bug | Description | |-----|-------------| | #11580 | Metrics+PromQL -> Logs, PromQL editor persists | | #11572 | Logs -> Metrics -> Logs, chart error "No field named value" | | #11571 | Builder -> SQL, chart blank table instead of line | | #11573 | Full editor open/close blanks the graph | | #11578 | Agg functions don't filter to integer fields | ## Test plan - [ ] Run `alerts-stream-switching-regression.spec.js` against dev environment - [ ] All 5 tests pass with no raw selectors in spec (POM-compliant) - [ ] Chart assertions verify canvas child exists (not just bounding box) 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
0b730213aa |
test: add regression tests for 10 closed logs bugs (#11632)
## Summary - Adds 10 automated regression tests for closed bug fixes verified by Test-Assist - All tests appended to `tests/ui-testing/playwright-tests/RegressionSet/logs-regression-bugs.spec.js` - No environment streams used — all tests use test-created streams only ## Tests Added | Bug | Title | Priority | |-----|-------|----------| | [#8224](https://github.com/openobserve/openobserve/issues/8224) | Showing message not displayed on logs page | P2 | | [#5894](https://github.com/openobserve/openobserve/issues/5894) | Timestamp not default selected for multi stream | P2 | | [#10344](https://github.com/openobserve/openobserve/issues/10344) | Run query button infinite loading switching home/logs | P0 | | [#11469](https://github.com/openobserve/openobserve/issues/11469) | Copy/include/exclude shown on hover in traces correlation | P2 | | [#5010](https://github.com/openobserve/openobserve/issues/5010) | Console error when aggregating with non-existent alias | P1 | | [#5278](https://github.com/openobserve/openobserve/issues/5278) | Pagination not showing when histogram is turned off | P1 | | [#3821](https://github.com/openobserve/openobserve/issues/3821) | Cannot read partitions error on stream change during query | P1 | | [#6702](https://github.com/openobserve/openobserve/issues/6702) | Partitions error when switching pages during query | P1 | | [#3131](https://github.com/openobserve/openobserve/issues/3131) | Order by not default for distinct queries | P2 | | [#4315](https://github.com/openobserve/openobserve/issues/4315) | Blank histogram on cancelling histogram query | P2 | ## Test Plan - [x] All 10 tests pass on first run against testing env - [x] No environment streams used (only e2e_automate + dynamically created) - [x] Tags follow convention: `@bug-XXXX`, `@P*`, `@regression`, functional tags 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> |
||
|
|
1096193a22 |
fix: In traces changing org should reset the trace results (#11517)
#11384 #11392 |
||
|
|
bff8735bb5 |
test: add E2E regression tests for bugs #11400 and #11498 (#11527)
## Summary - **Bug #11498**: Add P0 smoke tests verifying Run Query button disabled/enabled state based on stream selection in pipeline scheduled dialog - **Bug #11400**: Add P2 functional tests (3 tests) for query editor fixes: 1. Double-quote validation via Monaco DOM warning markers (`.squiggly-warning`) 2. Functions filtered from value-context suggestions in WHERE clause (`effectiveKeywords` computed property) 3. Mixed quote handling in multi-condition WHERE clauses (`hasOpenQuote` regex scoping fix) ## Changes - `logs-regression.spec.js`: Added 3 Bug #11400 tests (lines 1525-1728) - `pipeline-regression.spec.js`: Added 2 Bug #11498 tests - `logsPage.js`: Added 6 POM methods for Monaco suggestion widget interaction - `pipelinesPage.js`: Added POM methods for Run Query state and destination validation - `.gitignore`: Added test artifact patterns ## Test Plan - [x] All 3 Bug #11400 tests verified passing (`--headed --workers=1`) - [x] Bug #11498 tests verified passing in prior session - [x] Tests use DOM-based inspection (no `window.monaco` dependency) - [x] Graceful fallback when suggestion widget unavailable (field values not cached) ## Related - Fixes PR #11502 (Bug #11498) - Fixes PR #11403 (Bug #11400) - Docs: `docs/test_generator/cases/pipeline-bugs-test-cases.md` 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
1337a04058 |
fix: alert revamp version 3 (#11253)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Bhargav <BJP232004@GMAIL.COM> Co-authored-by: Shrinath Rao <shnath@openobserve.ai> Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> |
||
|
|
1365e18e23 |
test: automation for bug fixes (#11250)
## Summary Adds automated regression tests for 3 bugs marked as **Needs-Automation** in v0.80.0 milestone. ## Tests Added ### 1. Bug #10110 - Template Duplication in Alerts UI ✅ - **Issue:** https://github.com/openobserve/openobserve/issues/10110 - **Bug:** Template appeared twice in override template input field - **Test:** Validates template appears exactly once, no duplicate components - **Result:** PASSED (2.3m) ### 2. Bug #9043 - Trace Pagination Cursor Reset ✅ - **Issue:** https://github.com/openobserve/openobserve/issues/9043 - **Bug:** Pagination cursor reset when navigating back from trace details, causing duplicates - **Test:** Validates cursor preserved, no duplicates, trace count maintained (327 → 327) - **Result:** PASSED (1.8m) ### 3. Bug #7671 - FTS and Quick Mode Field Indicators ✅ - **Issue:** https://github.com/openobserve/openobserve/issues/7671 - **Bug:** FTS and quick mode fields should be visually indicated in stream settings - **Test:** Validates FTS option visible, quick mode icon mechanism in place - **Result:** PASSED (1.5m) ## Validation All tests validated on dev cluster and follow OpenObserve testing standards: ✅ POM patterns | ✅ TestLogger | ✅ Proper assertions | ✅ Parallel execution ## Related Issues Closes #10110, #9043, #7671 (automation requirements) --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Neha P <undefined@users.noreply.github.com> |
||
|
|
b308e83568 |
test: migrate GeneralTests and RegressionSet specs for alpha1 cloud (Set 12) (#11227)
## Summary - Migrate `landingPage.spec.js` and `languageTranslation.spec.js` (GeneralTests) for alpha1 cloud compatibility - Migrate `alerts-regression.spec.js` and `logs-9754.spec.js` (RegressionSet) for alpha1 cloud compatibility - Replace all `process.env["ORGNAME"]` / `process.env.ORGNAME` with `getOrgIdentifier()` from `cloud-auth.js` - Add `waitForStreamAvailable` to `logs-9754.spec.js` for cloud indexing delays - Fix `playwright-alpha1.config.js` to override `INGESTION_URL` when `.env` sets it to localhost ## Test plan - [x] All 4 spec files run against alpha1 cloud — 21/22 passed - [x] 1 flaky failure in alerts-regression (PromQL alert list visibility timeout — not migration-related) - [ ] CI run on `playwright_alpha1.yml` workflow with both branches --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com> |
||
|
|
ed5eca54fb |
test: tests for bug fixes (#11178)
https://github.com/openobserve/openobserve/issues/11174 --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
4f8d50a474 |
test: migrate RegressionSet specs for alpha1 cloud (Set 11) (#10924)
## Summary - Migrate 6 RegressionSet spec files for alpha1 cloud compatibility - Replace `process.env["ORGNAME"]` with `getOrgIdentifier()` from `cloud-auth.js` across all files - Full framework migration of `pipeline-regression.spec.js`: ESM → CJS imports, `LoginPage` login → `navigateToBase` + `PageManager` pattern - Add `cloud-auth.js` imports to all 6 files ## Files Changed - `logs-regression.spec.js` — 3 ORGNAME replacements + import - `logs-regression-bugs.spec.js` — 6 ORGNAME replacements + import - `streams-regression.spec.js` — 1 ORGNAME replacement + import - `ui-regression.spec.js` — 2 ORGNAME replacements + import - `enrichment-regression.spec.js` — 1 ORGNAME replacement + import - `pipeline-regression.spec.js` — full rewrite (ESM→CJS, LoginPage→navigateToBase, ORGNAME→getOrgIdentifier) ## Test plan - [x] Run RegressionSet against alpha1 cloud locally: 37 passed, 1 skipped, 3 pre-existing failures (not migration-related) - [ ] CI run on alpha1 cloud workflow 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com> Co-authored-by: Shrinath Rao <undefined@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> |
||
|
|
6cc680f1a3 |
test: add regression test for field values cache bug when switching streams (#10623)
- Add test to verify field values refresh when switching between streams - Ingests data into two streams with same field name but different values - Verifies UI fetches fresh values from new stream instead of showing cached values Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
407d12d135 |
test: add regression tests for query inspector, sorting, and logs expand (#10586)
## Summary Add Playwright regression tests for logs functionality: - **Query Inspector**: Verify readonly flag in buildSearch doesn't mutate logs state - **Sorting Logs**: Verify logs are sorted correctly when response has order_by_metadata - **Logs Expand**: Verify last log maintains highlighting when expanding other log entries Tests use Page Object Model pattern with methods added to logsPage.js. Tests for https://github.com/openobserve/openobserve/pull/10580 --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
82c8b1c7f6 |
test: add logs regression tests for quick mode and pagination bugs (#10541)
- Add test for quick mode query being removed when selecting interesting field - Add test for pagination visibility with histogram and SQL disabled - Add test for error message identifying problematic field --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Bhargav <BJP232004@GMAIL.COM> |
||
|
|
d573d01a62 |
fix(test): eliminate bare networkidle timeouts across entire test suite (#10494)
## Summary
- Replaced every bare `waitForLoadState('networkidle')` with `{ timeout:
10000 }.catch(() => {})` across **56 files** (35 spec files, 21 page
objects)
- OpenObserve pages maintain persistent RUM/replay/WebSocket connections
that prevent `networkidle` from ever resolving, causing 90s timeout
crashes
- Added `fetchWithRetry` helper for transient 502/proxy errors in SDR
multi-pattern `beforeAll`
- Bumped SDR multi-pattern test timeout from 300s to 420s for CI
## Files changed
**Page objects (21 files):** alertsPage, alertManagement,
alertCreationWizard, alertTemplatesPage, alertBulkOperations, logsPage,
streamsPage, streamAssociationPage, sdrPatternsPage,
sdrVerificationPage, dashboardPage, functionsPage, pipelinesPage,
enrichmentPage, sanityPage, schemaPage, loginPage, commonActions, and
more
**Spec files (35 files):** All SDR specs, all Traces specs, all Logs
specs, all RegressionSet specs, Alerts specs, Pipelines specs,
Dashboards specs, Functions specs, GeneralTests specs, wait-helpers
utility
## Test plan
- [x] Verify zero bare `networkidle` calls remain in `tests/ui-testing/`
- [ ] CI passes for SDR, Streams, Logs Regression, and other test suites
🤖 Generated with [Claude Code](https://claude.com/claude-code)
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
|
||
|
|
d729d9cfbe |
test: e2e testcase for bug #9754 (#10365)
### **PR Type** Tests, Enhancement ___ ### **Description** - Add Playwright regression coverage for bug #9754 - Ingest edge-case logs with unclosed delimiters - Assert table, highlighting, and detail sidebar - Extend LogsPage with helper accessors ___ ### Diagram Walkthrough ```mermaid flowchart LR A["Playwright regression spec: bug #9754"] B["Ingest edge-case log messages"] C["Logs UI assertions (table/search/highlighting)"] D["Log detail sidebar JSON assertions"] E["LogsPage page-object helpers"] F["Stream cleanup via API"] A -- "sends test data" --> B A -- "verifies rendering" --> C A -- "verifies sidebar content" --> D A -- "uses helper methods" --> E A -- "deletes test stream" --> F ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table> <tr> <td> <details> <summary><strong>logsPage.js</strong><dd><code>Add helpers for log detail and highlights</code> </dd></summary> <hr> tests/ui-testing/pages/logsPages/logsPage.js <ul><li>Add <code>getLogDetailJsonContentText()</code> for JSON detail text<br> <li> Add <code>getHighlightedElementsCount()</code> to count <code>.log-highlighted</code><br> <li> Log helper actions via <code>testLogger</code></ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/10365/files#diff-8045b343491d8943869c1af74cdafab204dc49c02a70294417e73f47d35e0b59">+20/-0</a> </td> </tr> </table></td></tr><tr><td><strong>Tests</strong></td><td><table> <tr> <td> <details> <summary><strong>logs-9754.spec.js</strong><dd><code>Add regression suite for logs highlighting bug</code> </dd></summary> <hr> tests/ui-testing/playwright-tests/RegressionSet/logs-9754.spec.js <ul><li>Add serial Playwright suite targeting bug #9754<br> <li> Ingest logs with unclosed brackets/quotes/ANSI sequences<br> <li> Assert no character loss in table and highlighting<br> <li> Validate log detail sidebar JSON and cleanup stream</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/10365/files#diff-169784bd6a86705694f5cdda656a31e6ff390cf1f76cfb9aec8ff4a652ae5f31">+403/-0</a> </td> </tr> </table></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
3bdf5cb210 |
test: resolve E2E test timeouts by replacing networkidle with deterministic waits (#10211)
## Summary This PR fixes flaky E2E tests by replacing unreliable `networkidle` waits and hard-coded timeouts with deterministic waiting strategies. ### Changes Made #### 1. Replace `networkidle` with `domcontentloaded` + explicit waits - `networkidle` waits for zero network activity for 500ms, which times out in SPAs with persistent connections (WebSockets, polling, telemetry) - Replaced with `domcontentloaded` plus explicit element/URL waits #### 2. Replace hard-coded `waitForTimeout` with `waitForResponse` - `alerts-incidents-tabs.spec.js`: Use `waitForResponse` for `/config` API instead of `waitForTimeout(2000)` - `logs-regression.spec.js`: Use `waitForResponse` for `/streams` API instead of `waitForTimeout(3000)` #### 3. Fix Alerts/Incidents menu visibility timing - Increased timeout for incidents menu item (depends on `service_graph_enabled` from config API) - Added `waitFor` pattern before expect assertions in `alertsPage.js` - Use `waitForResponse` for search API after page refresh #### 4. Enable parallel test execution - Enable parallel mode in `ui-regression.spec.js` - Use unique stream names (with timestamp) to avoid test conflicts ## Files Changed | File | Changes | |------|---------| | `logs-regression.spec.js` | Replace networkidle → domcontentloaded, waitForTimeout → waitForResponse | | `ui-regression.spec.js` | Enable parallel mode, use waitForURL for navigation | | `alerts-incidents-tabs.spec.js` | Replace networkidle → domcontentloaded, waitForTimeout → waitForResponse | | `alertsPage.js` | Improve menu visibility waits, replace networkidle with domcontentloaded | ## Fixes - Alerts E2E test timeouts waiting for incidents menu item - logs-regression.spec.js: #9388 saved views, #9475 apostrophes - ui-regression.spec.js: #9325 header navigation, #9565 org_identifier ## Test Plan - [x] All alerts-incidents-tabs tests pass locally (3 passed, 2 skipped) - [x] logs-regression tests pass locally - [x] ui-regression tests pass locally - [x] Tests run in parallel successfully --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> |
||
|
|
bb765e6b7b |
test: add regression bug tests (#10132)
### **User description** - Add logs-regression-bugs.spec.js for core logs page bugs (#9996, #9796, #9533, #8928) - Change logs-regression-bugs from serial to parallel mode for faster execution - Add try/catch resilience for apostrophe test (Bug #9475) - Add graceful skip for auto-refresh test when button disabled (Bug #9877) - Fix networkidle timeout in pipeline preview test (Bug #9498) - Add test.skip() pattern for OpenAPI test (Bug #9308) - Fix hoverOnFieldExpandButton logic bug in logsPage.js - Add isLiveMode5SecEnabled() and getPageContent() POM methods - Add stream details methods to streamsPage.js - Add pipeline regression methods to pipelinesPage.js 🤖 Generated with [Claude Code](https://claude.com/claude-code) ___ ### **PR Type** Tests, Enhancement ___ ### **Description** - Enhance POM with robust waits and new regression methods - Add comprehensive logs regression tests for bugs #9996, #9796, #9533, #8928 - Introduce VRL-specific tests (saved views #9690, icon absence #9550) - Add pipeline and streams regression tests (#9354, #9498, #10029) ___ <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><details><summary>3 files</summary><table> <tr> <td><strong>logsPage.js</strong><dd><code>Add robust wait and regression POM methods</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10132/files#diff-8045b343491d8943869c1af74cdafab204dc49c02a70294417e73f47d35e0b59">+115/-4</a> </td> </tr> <tr> <td><strong>pipelinesPage.js</strong><dd><code>Add regression POM methods for pipeline interactions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10132/files#diff-d5f2771fd1139c174c46d09a9ab2da0ea4588b853e2b87e4728322d072542f49">+105/-0</a> </td> </tr> <tr> <td><strong>streamsPage.js</strong><dd><code>Add regression POM methods for streams interactions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10132/files#diff-792df584eb1625d35fd1e33a5a37aa3ada28f15ec1e77a1921f1c56e50bf70d2">+61/-0</a> </td> </tr> </table></details></td></tr><tr><td><strong>Tests</strong></td><td><details><summary>10 files</summary><table> <tr> <td><strong>enrichment-table-url.spec.js</strong><dd><code>Add enrichment table search and CSV tests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10132/files#diff-faa0d1fc147a442b9738f5287bb60e22ddf44bae8568f7aeb6cfba0a267d138b">+116/-0</a> </td> </tr> <tr> <td><strong>logspage.spec.js</strong><dd><code>Add VRL saved view regression test</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10132/files#diff-b1a64252adae01c5e8f7e758e3c820f5476260f60c44a4a57b4f15a05a59a85a">+172/-0</a> </td> </tr> <tr> <td><strong>logstable.spec.js</strong><dd><code>Add VRL include/exclude icon regression test</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10132/files#diff-4d69d08f317ffc4a26179c74da0418c4db4184ce5f4f96a8df70af7a5a02008c">+119/-7</a> </td> </tr> <tr> <td><strong>pipeline-core.spec.js</strong><dd><code>Add VRL function node pipeline test</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10132/files#diff-3e57cb10518ffdfd480b0d5ec65db1fcee8419e9093ac0777ebabed4fccf2246">+75/-0</a> </td> </tr> <tr> <td><strong>pipelines.spec.js</strong><dd><code>Add pipeline enable/disable toggle test</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10132/files#diff-948dbdd764f739f3a4bcbb8c643ec4721e08695031bd9791040d68f7df842aee">+91/-0</a> </td> </tr> <tr> <td><strong>logs-regression-bugs.spec.js</strong><dd><code>Create logs regression bug fix spec</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10132/files#diff-c53c1c43378b285365467bf61d779983eae7d287f2ad18265db590270ed6ff6c">+214/-0</a> </td> </tr> <tr> <td><strong>logs-regression.spec.js</strong><dd><code>Enhance apostrophe and auto-refresh regression tests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10132/files#diff-99da86ede55fa5f2e3d3fbef897ba7aaa5a7db702a0135f66ac4c888fc7311b6">+36/-11</a> </td> </tr> <tr> <td><strong>pipeline-regression.spec.js</strong><dd><code>Extend pipeline regression tests for preview and backfill</code></dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10132/files#diff-6dd04b750c40b11abea987a130c1af35d7c89b74c303a2ad49207df5fe3a37e3">+146/-0</a> </td> </tr> <tr> <td><strong>streams-regression.spec.js</strong><dd><code>Add FTS auto-add streams regression test</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10132/files#diff-1c2aad49737186272645ea4cf0f7e3080e28d0c4d8585b3d07edc1889368591d">+39/-0</a> </td> </tr> <tr> <td><strong>ui-regression.spec.js</strong><dd><code>Enhance UI regression tests and skip logic</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/10132/files#diff-8ade144a0a63d887d5c6c9070c250dac9360925be9e6e5145ea4a0f43ceb2fdf">+116/-35</a></td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
cb0855360b |
test: add E2E automation for Bug #9967 - PromQL alert creation (#9995)
### **User description** ## Summary Adds comprehensive E2E automation tests for Bug #9967 (cannot save alert when selecting PromQL mode for metrics streams). ### Test Coverage **Test 1: Comprehensive PromQL alert creation validation (P0/P1)** - Verifies PromQL tab visibility for metrics streams - Validates "Trigger if the value is" condition row appears in Step 4 - Tests operator dropdown and value input visibility - Verifies mode switching clears PromQL condition when switching to Custom - Creates and saves alerts with different operators (`>=`, `<=`) **Test 2: Loading existing PromQL alert (P2)** - Creates a PromQL alert via API - Opens alert for editing - Verifies PromQL condition fields load correctly in edit mode ### Files Changed | File | Description | |------|-------------| | `tests/ui-testing/playwright-tests/RegressionSet/alerts-regression.spec.js` | New test file with 2 comprehensive tests | | `tests/ui-testing/pages/alertsPages/alertsPage.js` | Added 20+ POM methods for PromQL alert testing | | `tests/ui-testing/pages/alertsPages/alertCreationWizard.js` | Fixed stream selection retry logic | | `tests/ui-testing/playwright-tests/cleanup.spec.js` | Added `e2e_promql_` cleanup patterns | ### New Page Object Methods - `clickAddAlertButton()`, `fillAlertName()`, `selectStreamType()`, `selectMetricsStream()` - `selectScheduledAlertType()`, `clickContinueButton()`, `clickBackButton()` - `expectPromqlTabVisible()`, `clickPromqlTab()`, `expectCustomTabVisible()`, `expectSqlTabVisible()` - `expectPromqlConditionRowVisible()`, `expectPromqlConditionRowNotVisible()` - `expectOperatorDropdownVisible()`, `expectValueInputVisible()`, `getPromqlConditionValue()` - `clickStepIndicator()`, `expectAlertRowVisible()`, `clickAlertUpdateButton()` ## Test plan - [x] Tests pass locally with `npx playwright test playwright-tests/RegressionSet/alerts-regression.spec.js` - [x] Code passes Sentinel audit (Page Object Model compliance) - [ ] CI pipeline passes ## Related - Fixes #9967 - Related PR #9970 (fix implementation) ___ ### **PR Type** Enhancement, Tests ___ ### **Description** - Add PromQL trigger condition support - Initialize and clear `promql_condition` logic - Include `promql_condition` in payload builder - Add unit and E2E tests for PromQL ___ ### Diagram Walkthrough ```mermaid flowchart LR Settings["AlertSettings.vue: PromQL input"] Component["AddAlert.vue: init and clear promql_condition"] Payload["AddAlert.vue: include/clear promql_condition"] UnitTests["AddAlert.spec.ts: PromQL unit tests"] E2ETests["alerts-regression.spec.js: PromQL E2E tests"] Settings --> Component Component --> Payload Payload --> UnitTests Payload --> E2ETests ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><details><summary>5 files</summary><table> <tr> <td><strong>AddAlert.spec.ts</strong><dd><code>Add unit tests for PromQL conditions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/9995/files#diff-84362398fea8abd9acf30f4f40ba8d4cf27348677454017bd4e6f568d5176ac6">+397/-0</a> </td> </tr> <tr> <td><strong>alertCreationWizard.js</strong><dd><code>E2E method for PromQL alert creation</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/9995/files#diff-3b0a08b55d132502596d17c9d5f197de6d4779684de96ce570282e2402942e2e">+239/-0</a> </td> </tr> <tr> <td><strong>alertsPage.js</strong><dd><code>Add POM methods for PromQL tests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/9995/files#diff-79ee01d6d7f145f19207b93b87143b545a1188cfc6a82bc8c45fecfbf68f8a1d">+243/-0</a> </td> </tr> <tr> <td><strong>alerts-regression.spec.js</strong><dd><code>Add comprehensive PromQL E2E tests</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/9995/files#diff-123b8d960345fd76542aa75316be70b7d8fe088b4ba59127f14ddb53f5b52d8a">+562/-0</a> </td> </tr> <tr> <td><strong>cleanup.spec.js</strong><dd><code>Extend cleanup for PromQL test prefixes</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/9995/files#diff-c214275a512fa285a7e4f2ab61dfcb42d71a0436b0e4241f94d7b45693587983">+4/-2</a> </td> </tr> </table></details></td></tr><tr><td><strong>Enhancement</strong></td><td><details><summary>2 files</summary><table> <tr> <td><strong>AddAlert.vue</strong><dd><code>Initialize and handle `promql_condition` logic</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/9995/files#diff-7b426bb23e9ed0250c3877d6d97b099c42b2d20e22ddf4459915381b2233a0a8">+27/-0</a> </td> </tr> <tr> <td><strong>AlertSettings.vue</strong><dd><code>Add PromQL condition input and validation</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/9995/files#diff-1d5bfd6a1ea672884193649b1271d751d6f3b8ec84af759071c9bfd169a8ab28">+111/-7</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: sai nikhil kethe <nikhil@openobserve.ai> Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com> |
||
|
|
b3f79b6727 |
test: add bug regression tests to RegressionSet suite (#9899)
### **User description** Added automated tests for 4 verified bug fixes to the regression test suite: Bug Tests Added: - Bug #8349 (P1): SQL _timestamp alias rejection validation - Bug #7468 (P1): Multi-stream ellipsis with tooltip display - Bug #9475 (P1): Apostrophes/special characters without truncation - Bug #9877 (P0): Auto refresh time range updates Changes: - Added 3 bug tests to logs-regression.spec.js (#8349, #9475, #9877) - Added 1 bug test to streams-regression.spec.js (#7468) - Added 7 new POM methods to logsPage.js for stream display and tooltip handling - Removed duplicate tests from original locations (logspage.spec.js, logsqueries.spec.js) Test Results: - All 4 tests passing in sequential execution (3.4m total) - Bug #8349: 26s | Bug #7468: 56s | Bug #9475: 53s | Bug #9877: 40s POM Improvements: - getStreamDisplayElement(), expectStreamDisplayVisible() - getStreamDisplayText(), getStreamDisplayStyles() - hoverStreamDisplay(), isTooltipVisible(), getTooltipText() - Increased getLogsTableContent() timeout to 30s GitHub Issues: - https://github.com/openobserve/openobserve/issues/8349 - https://github.com/openobserve/openobserve/issues/7468 - https://github.com/openobserve/openobserve/issues/9475 - https://github.com/openobserve/openobserve/issues/9877 🤖 Generated with Claude Code ___ ### **PR Type** Tests ___ ### **Description** - Added regression tests for four bug fixes - Enhanced logsPage.js with stream POM methods - Cleaned up whitespace in log spec files - Increased table locator timeout in logsPage.js ___ ### Diagram Walkthrough ```mermaid flowchart LR POM["logsPage.js POM enhancements"] LogsReg["logs-regression.spec.js tests"] StreamsReg["streams-regression.spec.js tests"] POM -- "used in tests" --> LogsReg POM -- "used in tests" --> StreamsReg ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table> <tr> <td> <details> <summary><strong>logsPage.js</strong><dd><code>Add multi-stream POM and tooltip methods</code> </dd></summary> <hr> tests/ui-testing/pages/logsPages/logsPage.js <ul><li>Increased <code>getLogsTableContent</code> timeout to 30s<br> <li> Added stream display methods for multi-stream tests<br> <li> Implemented tooltip helper methods</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/9899/files#diff-8045b343491d8943869c1af74cdafab204dc49c02a70294417e73f47d35e0b59">+46/-1</a> </td> </tr> </table></td></tr><tr><td><strong>Formatting</strong></td><td><table> <tr> <td> <details> <summary><strong>logspage.spec.js</strong><dd><code>Whitespace cleanup in logspage spec</code> </dd></summary> <hr> tests/ui-testing/playwright-tests/Logs/logspage.spec.js - Removed extraneous whitespace </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/9899/files#diff-b1a64252adae01c5e8f7e758e3c820f5476260f60c44a4a57b4f15a05a59a85a">+1/-1</a> </td> </tr> <tr> <td> <details> <summary><strong>logsqueries.spec.js</strong><dd><code>Whitespace cleanup in logsqueries spec</code> </dd></summary> <hr> tests/ui-testing/playwright-tests/Logs/logsqueries.spec.js - Removed extraneous whitespace </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/9899/files#diff-c2055f6cef1580b15c5f94f5c8c2e496a6e921332b48bad943bb7c0630846a65">+16/-16</a> </td> </tr> </table></td></tr><tr><td><strong>Tests</strong></td><td><table> <tr> <td> <details> <summary><strong>logs-regression.spec.js</strong><dd><code>Add logs regression tests for bugs</code> </dd></summary> <hr> tests/ui-testing/playwright-tests/RegressionSet/logs-regression.spec.js <ul><li>Added test for SQL <code>_timestamp</code> alias rejection<br> <li> Added apostrophes display regression tests<br> <li> Added auto-refresh time range regression test</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/9899/files#diff-99da86ede55fa5f2e3d3fbef897ba7aaa5a7db702a0135f66ac4c888fc7311b6">+355/-0</a> </td> </tr> <tr> <td> <details> <summary><strong>streams-regression.spec.js</strong><dd><code>Add multi-stream ellipsis tooltip tests</code> </dd></summary> <hr> tests/ui-testing/playwright-tests/RegressionSet/streams-regression.spec.js <ul><li>Added regression test for multi-stream ellipsis tooltip (Bug #7468)<br> <li> Implemented helper functions for stream ingestion</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/9899/files#diff-1c2aad49737186272645ea4cf0f7e3080e28d0c4d8585b3d07edc1889368591d">+166/-0</a> </td> </tr> </table></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: Shrinath Rao <shnath@openobserve.ai> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> |
||
|
|
d8c08e7b68 |
test(e2e): add automation for bugs #9217, #9724, #9901 and Feature #9484 (#9883)
## Summary E2E test automation for multiple bug fixes and features: - Bug #9217 (Favicon missing) - Bug #9724 (Log detail sidebar default tab) - Bug #9901 (Scheduled pipeline validation) - includes cherry-picked fixes - Feature #9484 (Manual Alert Trigger via UI) --- ## Bug Fixes Automated ### Bug #9217 - Favicon icon missing on main branch - **Issue:** https://github.com/openobserve/openobserve/issues/9217 - **Fix PR:** https://github.com/openobserve/openobserve/pull/9189 - **Test:** Verifies favicon is present in DOM and loads via HTTP 200 - **Location:** `tests/ui-testing/playwright-tests/RegressionSet/ui-regression.spec.js` ### Bug #9724 - Log detail sidebar opens with JSON tab by default - **Issue:** https://github.com/openobserve/openobserve/issues/9724 - **Fix PR:** https://github.com/openobserve/openobserve/pull/9703 - **Test:** Verifies JSON tab is selected by default when opening log detail sidebar - **Location:** `tests/ui-testing/playwright-tests/RegressionSet/logs-regression.spec.js` ### Bug #9901 - Scheduled pipeline not validating on selected stream type - **Issue:** https://github.com/openobserve/openobserve/issues/9901 - **Fix PR:** https://github.com/openobserve/openobserve/pull/9897 (cherry-picked) - **Tests:** 4 regression tests covering: 1. Metrics stream type validation (not hardcoded "logs") 2. Traces stream type validation (not hardcoded "logs") 3. Quick click on "Validate and Close" without blur interference 4. Quick click on "Cancel" without blur interference - **Location:** `tests/ui-testing/playwright-tests/RegressionSet/pipeline-regression.spec.js` **Cherry-picked fixes from PR #9897:** - `f2a211cf2`: Use selected stream type for validating SQL query - `b1bf7e658`: Add @mousedown.prevent to prevent blur/click race condition ### Feature #9484 - Manual Alert Trigger via UI - **Issue:** https://github.com/openobserve/openobserve/issues/9484 - **Test:** Verifies manual alert trigger button works via kebab menu - **Location:** `tests/ui-testing/playwright-tests/Alerts/alerts-ui-operations.spec.js` --- ## New Page Object Methods Added ### pipelinesPage.js - `ingestMetricsData(streamName, recordCount)` - Ingest metrics via `/api/{org}/ingest/metrics/_json` - `ingestTracesData(serviceName, spanCount, streamName)` - Ingest traces via OTLP `/api/{org}/v1/traces` - Supports custom stream name via `stream-name` header (configurable via `ZO_GRPC_STREAM_HEADER_KEY`) - Proper nested parent-child span timing for waterfall visualization - `clickValidateAndClose()`, `focusSqlEditor()`, `isDiscardChangesDialogVisible()` - `expectDiscardDialogNotVisible()`, `cleanupPipelineCreation()` ### logsPage.js - Log detail sidebar selectors and verification methods - Replaced `waitForTimeout(500)` with element waits (3 places) - Replaced `throw new Error()` with `expect()` assertions (3 places) ### homePage.js - `verifyFavicon()` - Verify favicon presence and HTTP load - Fixed `domValid` boolean cast with `includes()` ### alertManagement.js - Manual alert trigger method via kebab menu --- ## Files Changed | File | Changes | |------|---------| | `tests/ui-testing/pages/pipelinesPages/pipelinesPage.js` | Metrics/traces ingestion, scheduled pipeline validation methods | | `tests/ui-testing/pages/logsPages/logsPage.js` | Log detail sidebar + PR review fixes | | `tests/ui-testing/pages/generalPages/homePage.js` | Favicon verification + review fix | | `tests/ui-testing/pages/alertsPages/alertManagement.js` | Manual alert trigger method | | `tests/ui-testing/playwright-tests/RegressionSet/pipeline-regression.spec.js` | **NEW** - 4 tests for #9901 | | `tests/ui-testing/playwright-tests/RegressionSet/ui-regression.spec.js` | Favicon test | | `tests/ui-testing/playwright-tests/RegressionSet/logs-regression.spec.js` | Log detail sidebar test | | `tests/ui-testing/playwright-tests/Alerts/alerts-ui-operations.spec.js` | Manual alert trigger test | | `tests/ui-testing/playwright-tests/cleanup.spec.js` | Cleanup patterns for test streams | | `.github/workflows/playwright.yml` | Added pipeline-regression.spec.js to CI | | `web/src/components/pipeline/...` | Cherry-picked validation fixes | --- ## Test Plan - [x] Bug #9217 test passes locally - [x] Bug #9724 test passes locally - [x] Bug #9901 tests pass locally (4 tests, ~3.9 min) - [x] Feature #9484 test passes locally - [x] Cleanup patterns added for test streams --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> |
||
|
|
ddd4c0048a |
test: update alerts e2e tests for new UI flow (#9705)
### **User description** ## Summary - Fix destination import test locator in `verifyDestinationCountMessage()` - Move inline locators to constructor in alertsPage.js and alertTemplatesPage.js - Update alerts spec files for Alerts 2.0 wizard flow ## Test plan - [x] Run `npx playwright test playwright-tests/Alerts/` - all tests pass - [x] Sentinel audit passed with no critical issues ___ ### **PR Type** Tests, Enhancement ___ ### **Description** - Enhance AlertsPage for 2.0 wizard UI (create/update/pause/resume) - Add import success and count verifications in AlertDestinationsPage - Centralize locators in AlertTemplatesPage - Update specs to use new page methods and clearAndFillQueryEditor ___ <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><details><summary>7 files</summary><table> <tr> <td><strong>alertDestinationsPage.js</strong><dd><code>Add import success and count verification methods</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/9705/files#diff-57e5c53b4ef998b3d8708149620ff94dcc46807927f1a3a9e9f28ed3ebe25b0a">+30/-0</a> </td> </tr> <tr> <td><strong>alertTemplatesPage.js</strong><dd><code>Move inline locators into constructor</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/9705/files#diff-f4ebd248b2140051e74dbbbd1aabe344f01c80704ce5857e9c28a04350e018f3">+12/-7</a> </td> </tr> <tr> <td><strong>alertsPage.js</strong><dd><code>Refactor for Alerts 2.0 wizard UI and new actions</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/9705/files#diff-79ee01d6d7f145f19207b93b87143b545a1188cfc6a82bc8c45fecfbf68f8a1d">+537/-155</a></td> </tr> <tr> <td><strong>dashboard-folder.js</strong><dd><code>Use data-test locator for folder visibility</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/9705/files#diff-2c20ba97d8e487482cb8fafab72dc6ac96b8a8935ca7e16383afb6173372082e">+4/-1</a> </td> </tr> <tr> <td><strong>alerts-import.spec.js</strong><dd><code>Use new page methods for import verifications</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/9705/files#diff-62b6ec4818685eacc0a934d68aaadfd73b512ef4f4be25fcd5135b97c2844912">+4/-4</a> </td> </tr> <tr> <td><strong>alerts-ui-operations.spec.js</strong><dd><code>Replace raw locators with page object validations</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/9705/files#diff-c9b523b5f5dea834b69abdf20f4acef361bdf37b1585c450e10238b1d1984f2e">+3/-3</a> </td> </tr> <tr> <td><strong>logs-regression.spec.js</strong><dd><code>Replace editor calls with clearAndFillQueryEditor</code> </dd></td> <td><a href="https://github.com/openobserve/openobserve/pull/9705/files#diff-99da86ede55fa5f2e3d3fbef897ba7aaa5a7db702a0135f66ac4c888fc7311b6">+4/-6</a> </td> </tr> </table></details></td></tr></tr></tbody></table> </details> ___ |
||
|
|
8173c3cb41 |
test: updated query for logs regression spec file and added waits (#9698)
### **PR Type**
Tests, Enhancement
___
### **Description**
- Updated test subquery to select `kubernetes_pod_name`
- Replaced editor interactions with `clearAndFillQueryEditor`
- Added explicit `waitForTimeout` calls for stability
___
<details> <summary><h3> File Walkthrough</h3></summary>
<table><thead><tr><th></th><th align="left">Relevant
files</th></tr></thead><tbody><tr><td><strong>Tests</strong></td><td><table>
<tr>
<td>
<details>
<summary><strong>logs-regression.spec.js</strong><dd><code>Enhance query
flow and stability in test</code>
</dd></summary>
<hr>
tests/ui-testing/playwright-tests/RegressionSet/logs-regression.spec.js
<ul><li>Modified SQL subquery to select single column<br> <li> Replaced
<code>clickQueryEditor</code> & <code>typeInQueryEditor</code> with
<br><code>clearAndFillQueryEditor</code><br> <li> Added
<code>waitForTimeout</code> calls around query execution steps</ul>
</details>
</td>
<td><a
href="https://github.com/openobserve/openobserve/pull/9698/files#diff-99da86ede55fa5f2e3d3fbef897ba7aaa5a7db702a0135f66ac4c888fc7311b6">+4/-3</a>
</td>
</tr>
</table></td></tr></tr></tbody></table>
</details>
___
|
||
|
|
24b024a502 |
test: automation for bugs fixes (#9678)
### **User description** ## Summary Refactored the logs regression test suite to follow the Page Object Model (POM) pattern by centralizing all locators in the logsPage.js POM file and updating test files to use these locators instead of hardcoded selectors. ## Testing All 10 regression tests passing: - ✅ Absolute time error validation - ✅ Stream switching with saved views (#9388) - ✅ Field values with SUBQUERY/CTE/GROUP BY (#7751) - ✅ Pagination count after search (#8868) - ✅ Alert graph color display (#9311) - ✅ Histogram query from history (#8180) - ✅ Timestamp field in quick mode (#8180) - ✅ Source field display logic (#8180) Test execution: 10/10 passed in 7.2 minutes ___ ### **PR Type** Tests, Enhancement ___ ### **Description** - Refactor logs regression tests to Page Object Model - Centralize all locators in `logsPage.js` - Add new POM locators for regression tests - Add regression tests for bug #7751 (subquery, CTE, GROUP BY) - Add regression tests for bug #8868 (pagination count update) - Add regression test for bug #9311 (alert graph color) - Add regression tests for bug #8180 (histogram, timestamp, source field) ___ ### Diagram Walkthrough ```mermaid flowchart LR A["logsPage.js: New POM locators"] --> B["logs-regression.spec.js: Bug regression tests"] ``` <details> <summary><h3> File Walkthrough</h3></summary> <table><thead><tr><th></th><th align="left">Relevant files</th></tr></thead><tbody><tr><td><strong>Enhancement</strong></td><td><table> <tr> <td> <details> <summary><strong>logsPage.js</strong><dd><code>Add POM locators for regression tests</code> </dd></summary> <hr> tests/ui-testing/pages/logsPages/logsPage.js <ul><li>Added alert-related selectors (<code>alertsMenuItem</code>, <code>alertGraph</code>, <code>alertChart</code>)<br> <li> Added query history selectors (<code>queryHistoryButton</code>, <code>historyPanel</code>)<br> <li> Added table and pagination selectors (<code>tableBottom</code>, <code>tableBodyRow</code>, <br><code>tableHeaders</code>)<br> <li> Added dynamic field selector functions (<code>fieldExpandButton</code>, <br><code>subfieldAddButton</code>, etc.)<br> <li> Added streams search, error indicators, timestamp detail selectors</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/9678/files#diff-8045b343491d8943869c1af74cdafab204dc49c02a70294417e73f47d35e0b59">+29/-0</a> </td> </tr> </table></td></tr><tr><td><strong>Tests</strong></td><td><table> <tr> <td> <details> <summary><strong>logs-regression.spec.js</strong><dd><code>Add regression tests for major log search bugs</code> </dd></summary> <hr> tests/ui-testing/playwright-tests/RegressionSet/logs-regression.spec.js <ul><li>Added tests for bug #7751: subquery, CTE, GROUP BY field expansion<br> <li> Added test for bug #8868: pagination count after filtering<br> <li> Added test for bug #9311: full alert graph color rendering<br> <li> Added tests for bug #8180: histogram query, timestamp in quick mode, <br>source field logic</ul> </details> </td> <td><a href="https://github.com/openobserve/openobserve/pull/9678/files#diff-99da86ede55fa5f2e3d3fbef897ba7aaa5a7db702a0135f66ac4c888fc7311b6">+538/-0</a> </td> </tr> </table></td></tr></tr></tbody></table> </details> ___ --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
13f5fa239a | test: add Playwright tests for theme management (#9636) | ||
|
|
138808f6a7 |
test: add regression tests for bugs fixes (#9630)
…#9308, #9193, #9117) Added comprehensive E2E regression test suite for critical UI bugs: P0 Tests: - #9337: Query expand icon not working after stream explorer navigation - #9388: Stream switching shows wrong table fields (BLOCKER) P1 Tests: - #9455-1: Download empty results notification (CSV + JSON) - #9455-2: Download validation without stream selection - #9308: OpenAPI button redirect from Help menu - #9193: Enrichment table color contrast in light mode - #9117: SQL mode conversion with pipe operators Test Results: 7/7 passing (100%) - Follows OpenObserve test patterns and page object model - Proper tagging (@P0/@P1, feature tags, @regressionBugs) - Comprehensive logging with testLogger - All tests run independently in parallel Files: - tests/ui-testing/playwright-tests/RegressionSet/ui-regression.spec.js --------- Co-authored-by: Claude <noreply@anthropic.com> |
||
|
|
4ecc5509d5 |
test: Added Shard for Regression tests and logs spec file in it (#9394)
Co-authored-by: mmosarafO2 <mosraf@openobserve.ai> Co-authored-by: Hengfei Yang <hengfei.yang@gmail.com> Co-authored-by: Sai Nikhil <nikhil@openobserve.ai> |