Skip to content

Update page state when entity store is disabled#265125

Merged
jaredburgettelastic merged 6 commits into
elastic:mainfrom
tcalopes:ea-home-page-empty-state
Apr 24, 2026
Merged

Update page state when entity store is disabled#265125
jaredburgettelastic merged 6 commits into
elastic:mainfrom
tcalopes:ea-home-page-empty-state

Conversation

@tcalopes
Copy link
Copy Markdown
Contributor

@tcalopes tcalopes commented Apr 22, 2026

Summary

Updating the home page to show message to enable Entity Analytics if it's not enabled.

How to verify

  1. Open a space configured with the Security view
  2. Go to the Entity Analytics page
  3. See the message and the buttons linking to the settings and docs page
  4. Click on Enable Entity analytics and enable Entity analytics
  5. Go back and see the "default" home page
image

@tcalopes tcalopes force-pushed the ea-home-page-empty-state branch from ee72b38 to 8ee0eee Compare April 22, 2026 18:48
@tcalopes tcalopes self-assigned this Apr 22, 2026
@tcalopes tcalopes added release_note:skip Skip the PR/issue when compiling release notes Team:Entity Analytics Security Entity Analytics Team backport:version Backport to applied version labels v9.4.0 labels Apr 22, 2026
@tcalopes tcalopes marked this pull request as ready for review April 22, 2026 18:54
@tcalopes tcalopes requested review from a team as code owners April 22, 2026 18:54
@elasticmachine
Copy link
Copy Markdown
Contributor

Pinging @elastic/security-entity-analytics (Team:Entity Analytics)

Copy link
Copy Markdown
Contributor

@CAWilson94 CAWilson94 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Desk tested -- works as described. Tested in custom space also, and dark mode.

Update page state also returns when toggle on management page is toggled back to off, from an on state. 🔥

Image

@macroscopeapp
Copy link
Copy Markdown
Contributor

macroscopeapp Bot commented Apr 23, 2026

Catch flakiness early (recommended)

Recommended before merge: run the flaky test runner against this PR to catch flakiness early.

New cy.intercept hooks and a removed cy.wait in entities_table.cy.ts and entities_table_grouping.cy.ts change async timing; both the ESS and serverless configs are affected.

Trigger a run with the Flaky Test Runner UI or post this comment on the PR:

/flaky ftrConfig:x-pack/solutions/security/test/security_solution_cypress/cli_config.ts:30 ftrConfig:x-pack/solutions/security/test/security_solution_cypress/serverless_config.ts:30

Share feedback in the #appex-qa channel.

Posted via Macroscope — Flaky Test Runner nudge

@elasticmachine
Copy link
Copy Markdown
Contributor

elasticmachine commented Apr 23, 2026

💔 Build Failed

Failed CI Steps

Test Failures

  • [job] [logs] Serverless Entity Analytics - Security Cypress Tests #1 / Entities table - Empty state "before each" hook for "displays empty state when no entity data exists" "before each" hook for "displays empty state when no entity data exists"
  • [job] [logs] Entity Analytics - Security Solution Cypress Tests #1 / Entities table - Empty state "before each" hook for "displays empty state when no entity data exists" "before each" hook for "displays empty state when no entity data exists"
  • [job] [logs] Serverless Entity Analytics - Security Cypress Tests #1 / Entities table - Empty state "before each" hook for "displays empty state when no entity data exists" "before each" hook for "displays empty state when no entity data exists"
  • [job] [logs] Entity Analytics - Security Solution Cypress Tests #1 / Entities table Data grid "before each" hook for "renders the data grid with column and sorting selectors" "before each" hook for "renders the data grid with column and sorting selectors"
  • [job] [logs] Entity Analytics - Security Solution Cypress Tests #1 / Entities table Data grid "before each" hook for "renders the data grid with column and sorting selectors" "before each" hook for "renders the data grid with column and sorting selectors"
  • [job] [logs] Entity Analytics - Security Solution Cypress Tests #1 / Entity Analytics page "before each" hook for "renders page as expected" "before each" hook for "renders page as expected"
  • [job] [logs] Entity Analytics - Security Solution Cypress Tests #1 / Entity Analytics page "before each" hook for "renders page as expected" "before each" hook for "renders page as expected"

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
securitySolution 9247 9249 +2

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
securitySolution 11.7MB 11.7MB +7.6KB
Unknown metric groups

ESLint disabled line counts

id before after diff
securitySolution 752 753 +1

Total ESLint disabled count

id before after diff
securitySolution 857 858 +1

History

cc @tcalopes

@jaredburgettelastic jaredburgettelastic merged commit 91d0be5 into elastic:main Apr 24, 2026
20 checks passed
@kibanamachine
Copy link
Copy Markdown
Contributor

Starting backport for target branches: 9.4

https://github.com/elastic/kibana/actions/runs/24869938255

@kibanamachine
Copy link
Copy Markdown
Contributor

💚 All backports created successfully

Status Branch Result
9.4

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation

kibanamachine added a commit that referenced this pull request Apr 24, 2026
)

# Backport

This will backport the following commits from `main` to `9.4`:
- [Update page state when entity store is disabled
(#265125)](#265125)

<!--- Backport version: 9.6.6 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sorenlouv/backport)

<!--BACKPORT
[{"author":{"name":"tcalopes","email":"tatiana.lopes@elastic.co"},"sourceCommit":{"committedDate":"2026-04-24T03:00:17Z","message":"Update
page state when entity store is disabled (#265125)\n\n##
Summary\n\nUpdating the home page to show message to enable Entity
Analytics if\nit's not enabled.\n\n## How to verify\n1. Open a space
configured with the Security view\n2. Go to the Entity Analytics
page\n3. See the message and the buttons linking to the settings and
docs page\n4. Click on Enable Entity analytics and enable Entity
analytics\n5. Go back and see the \"default\" home page\n\n<img
width=\"1898\" height=\"826\"
alt=\"image\"\nsrc=\"https://github.com/user-attachments/assets/e1f3eff9-a87c-4ed0-8ee8-3beb1e68232d\"\n/>\n\n---------\n\nCo-authored-by:
jaredburgettelastic
<jared.burgett@elastic.co>","sha":"91d0be52289750254449a6ac793beb143f2c1e3b","branchLabelMapping":{"^v9.5.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Team:Entity
Analytics","backport:version","v9.4.0","v9.5.0"],"title":"Update page
state when entity store is
disabled","number":265125,"url":"https://github.com/elastic/kibana/pull/265125","mergeCommit":{"message":"Update
page state when entity store is disabled (#265125)\n\n##
Summary\n\nUpdating the home page to show message to enable Entity
Analytics if\nit's not enabled.\n\n## How to verify\n1. Open a space
configured with the Security view\n2. Go to the Entity Analytics
page\n3. See the message and the buttons linking to the settings and
docs page\n4. Click on Enable Entity analytics and enable Entity
analytics\n5. Go back and see the \"default\" home page\n\n<img
width=\"1898\" height=\"826\"
alt=\"image\"\nsrc=\"https://github.com/user-attachments/assets/e1f3eff9-a87c-4ed0-8ee8-3beb1e68232d\"\n/>\n\n---------\n\nCo-authored-by:
jaredburgettelastic
<jared.burgett@elastic.co>","sha":"91d0be52289750254449a6ac793beb143f2c1e3b"}},"sourceBranch":"main","suggestedTargetBranches":["9.4"],"targetPullRequestStates":[{"branch":"9.4","label":"v9.4.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v9.5.0","branchLabelMappingKey":"^v9.5.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/265125","number":265125,"mergeCommit":{"message":"Update
page state when entity store is disabled (#265125)\n\n##
Summary\n\nUpdating the home page to show message to enable Entity
Analytics if\nit's not enabled.\n\n## How to verify\n1. Open a space
configured with the Security view\n2. Go to the Entity Analytics
page\n3. See the message and the buttons linking to the settings and
docs page\n4. Click on Enable Entity analytics and enable Entity
analytics\n5. Go back and see the \"default\" home page\n\n<img
width=\"1898\" height=\"826\"
alt=\"image\"\nsrc=\"https://github.com/user-attachments/assets/e1f3eff9-a87c-4ed0-8ee8-3beb1e68232d\"\n/>\n\n---------\n\nCo-authored-by:
jaredburgettelastic
<jared.burgett@elastic.co>","sha":"91d0be52289750254449a6ac793beb143f2c1e3b"}}]}]
BACKPORT-->

Co-authored-by: tcalopes <tatiana.lopes@elastic.co>
Co-authored-by: jaredburgettelastic <jared.burgett@elastic.co>
rbrtj pushed a commit to walterra/kibana that referenced this pull request Apr 27, 2026
## Summary

Updating the home page to show message to enable Entity Analytics if
it's not enabled.

## How to verify
1. Open a space configured with the Security view
2. Go to the Entity Analytics page
3. See the message and the buttons linking to the settings and docs page
4. Click on Enable Entity analytics and enable Entity analytics
5. Go back and see the "default" home page

<img width="1898" height="826" alt="image"
src="https://github.com/user-attachments/assets/e1f3eff9-a87c-4ed0-8ee8-3beb1e68232d"
/>

---------

Co-authored-by: jaredburgettelastic <jared.burgett@elastic.co>
SoniaSanzV pushed a commit to SoniaSanzV/kibana that referenced this pull request Apr 27, 2026
## Summary

Updating the home page to show message to enable Entity Analytics if
it's not enabled.

## How to verify
1. Open a space configured with the Security view
2. Go to the Entity Analytics page
3. See the message and the buttons linking to the settings and docs page
4. Click on Enable Entity analytics and enable Entity analytics
5. Go back and see the "default" home page

<img width="1898" height="826" alt="image"
src="https://github.com/user-attachments/assets/e1f3eff9-a87c-4ed0-8ee8-3beb1e68232d"
/>

---------

Co-authored-by: jaredburgettelastic <jared.burgett@elastic.co>
MadameSheema added a commit that referenced this pull request May 7, 2026
…eout (#268217)

## Summary

Fixes intermittent failures in `entities_table_grouping.cy.ts` reported
in:
- #267794
- #267795
- #267828
- #267965

### Root Cause

PR #265125 added `interceptEntityStoreStatus('running')` +
`cy.wait('@entityStoreStatus', { timeout: 20000 })` to every
`beforeEach` to prevent the page from showing
`EntityStoreDisabledEmptyPrompt`. The intent was correct, but after
`@entityStoreStatus` resolves, the page still needs to:

1. React re-render with the new status data
2. Wait for `isSourcererLoading = false` (the sourcerer / data-view
initialization)
3. Mount `EntitiesTableSection`
4. Fire the POST to `/internal/search/ese`

This cascade can easily take **> 5 s** in slow CI environments, while
`cy.wait('@entityStoreSearch')` was left with the default **5 s
timeout** — causing "No request ever occurred" failures.

### Changes

**Option A** — raise the `@entityStoreSearch` timeout to 20 s, matching
`@entityStoreStatus`.

**Option B** — consolidate `cy.wait('@entityStoreStatus')` +
`cy.wait('@entityStoreSearch')` + `waitForGroupingTable()` into a single
`waitForEntityAnalyticsPageReady()` task helper, so the three
`beforeEach` blocks stay DRY and the timeout logic lives in one place.

Both options are implemented together: the helper encapsulates the
correct timeouts and every `beforeEach` now calls
`waitForEntityAnalyticsPageReady()`.

## Test plan

- [ ] Verify `entities_table_grouping.cy.ts` passes locally
- [ ] Check CI on this PR for the three previously-failing suites (Group
by Resolution, Switching grouping)

## Checklist

- [x] No hardcoded waits (`cy.wait(ms)`) introduced
- [x] No `eslint-disable` introduced
- [x] Existing tests unchanged — only `beforeEach` wiring consolidated

Made with [Cursor](https://cursor.com)

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
kibanamachine added a commit that referenced this pull request May 7, 2026
…ch timeout (#268217) (#268309)

# Backport

This will backport the following commits from `main` to `9.4`:
- [[EA] Fix flaky entities_table_grouping: extend @entityStoreSearch
timeout (#268217)](#268217)

<!--- Backport version: 9.6.6 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sorenlouv/backport)

<!--BACKPORT [{"author":{"name":"Gloria
Hornero","email":"gloria.hornero@elastic.co"},"sourceCommit":{"committedDate":"2026-05-07T21:03:08Z","message":"[EA]
Fix flaky entities_table_grouping: extend @entityStoreSearch timeout
(#268217)\n\n## Summary\n\nFixes intermittent failures in
`entities_table_grouping.cy.ts` reported\nin:\n- #267794\n- #267795\n-
#267828\n- #267965\n\n### Root Cause\n\nPR #265125 added
`interceptEntityStoreStatus('running')`
+\n`cy.wait('@entityStoreStatus', { timeout: 20000 })` to
every\n`beforeEach` to prevent the page from
showing\n`EntityStoreDisabledEmptyPrompt`. The intent was correct, but
after\n`@entityStoreStatus` resolves, the page still needs to:\n\n1.
React re-render with the new status data\n2. Wait for
`isSourcererLoading = false` (the sourcerer /
data-view\ninitialization)\n3. Mount `EntitiesTableSection`\n4. Fire the
POST to `/internal/search/ese`\n\nThis cascade can easily take **> 5 s**
in slow CI environments, while\n`cy.wait('@entityStoreSearch')` was left
with the default **5 s\ntimeout** — causing \"No request ever occurred\"
failures.\n\n### Changes\n\n**Option A** — raise the
`@entityStoreSearch` timeout to 20 s,
matching\n`@entityStoreStatus`.\n\n**Option B** — consolidate
`cy.wait('@entityStoreStatus')` +\n`cy.wait('@entityStoreSearch')` +
`waitForGroupingTable()` into a
single\n`waitForEntityAnalyticsPageReady()` task helper, so the
three\n`beforeEach` blocks stay DRY and the timeout logic lives in one
place.\n\nBoth options are implemented together: the helper encapsulates
the\ncorrect timeouts and every `beforeEach` now
calls\n`waitForEntityAnalyticsPageReady()`.\n\n## Test plan\n\n- [ ]
Verify `entities_table_grouping.cy.ts` passes locally\n- [ ] Check CI on
this PR for the three previously-failing suites (Group\nby Resolution,
Switching grouping)\n\n## Checklist\n\n- [x] No hardcoded waits
(`cy.wait(ms)`) introduced\n- [x] No `eslint-disable` introduced\n- [x]
Existing tests unchanged — only `beforeEach` wiring consolidated\n\nMade
with [Cursor](https://cursor.com)\n\n---------\n\nCo-authored-by: Cursor
<cursoragent@cursor.com>","sha":"fd88e7fead56d2c4d274ea588c8449fbc4218534","branchLabelMapping":{"^v9.5.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","backport:all-open","Team:Entity
Analytics","v9.5.0","v9.4.1"],"title":"[EA] Fix flaky
entities_table_grouping: extend @entityStoreSearch
timeout","number":268217,"url":"https://github.com/elastic/kibana/pull/268217","mergeCommit":{"message":"[EA]
Fix flaky entities_table_grouping: extend @entityStoreSearch timeout
(#268217)\n\n## Summary\n\nFixes intermittent failures in
`entities_table_grouping.cy.ts` reported\nin:\n- #267794\n- #267795\n-
#267828\n- #267965\n\n### Root Cause\n\nPR #265125 added
`interceptEntityStoreStatus('running')`
+\n`cy.wait('@entityStoreStatus', { timeout: 20000 })` to
every\n`beforeEach` to prevent the page from
showing\n`EntityStoreDisabledEmptyPrompt`. The intent was correct, but
after\n`@entityStoreStatus` resolves, the page still needs to:\n\n1.
React re-render with the new status data\n2. Wait for
`isSourcererLoading = false` (the sourcerer /
data-view\ninitialization)\n3. Mount `EntitiesTableSection`\n4. Fire the
POST to `/internal/search/ese`\n\nThis cascade can easily take **> 5 s**
in slow CI environments, while\n`cy.wait('@entityStoreSearch')` was left
with the default **5 s\ntimeout** — causing \"No request ever occurred\"
failures.\n\n### Changes\n\n**Option A** — raise the
`@entityStoreSearch` timeout to 20 s,
matching\n`@entityStoreStatus`.\n\n**Option B** — consolidate
`cy.wait('@entityStoreStatus')` +\n`cy.wait('@entityStoreSearch')` +
`waitForGroupingTable()` into a
single\n`waitForEntityAnalyticsPageReady()` task helper, so the
three\n`beforeEach` blocks stay DRY and the timeout logic lives in one
place.\n\nBoth options are implemented together: the helper encapsulates
the\ncorrect timeouts and every `beforeEach` now
calls\n`waitForEntityAnalyticsPageReady()`.\n\n## Test plan\n\n- [ ]
Verify `entities_table_grouping.cy.ts` passes locally\n- [ ] Check CI on
this PR for the three previously-failing suites (Group\nby Resolution,
Switching grouping)\n\n## Checklist\n\n- [x] No hardcoded waits
(`cy.wait(ms)`) introduced\n- [x] No `eslint-disable` introduced\n- [x]
Existing tests unchanged — only `beforeEach` wiring consolidated\n\nMade
with [Cursor](https://cursor.com)\n\n---------\n\nCo-authored-by: Cursor
<cursoragent@cursor.com>","sha":"fd88e7fead56d2c4d274ea588c8449fbc4218534"}},"sourceBranch":"main","suggestedTargetBranches":["9.4"],"targetPullRequestStates":[{"branch":"main","label":"v9.5.0","branchLabelMappingKey":"^v9.5.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/268217","number":268217,"mergeCommit":{"message":"[EA]
Fix flaky entities_table_grouping: extend @entityStoreSearch timeout
(#268217)\n\n## Summary\n\nFixes intermittent failures in
`entities_table_grouping.cy.ts` reported\nin:\n- #267794\n- #267795\n-
#267828\n- #267965\n\n### Root Cause\n\nPR #265125 added
`interceptEntityStoreStatus('running')`
+\n`cy.wait('@entityStoreStatus', { timeout: 20000 })` to
every\n`beforeEach` to prevent the page from
showing\n`EntityStoreDisabledEmptyPrompt`. The intent was correct, but
after\n`@entityStoreStatus` resolves, the page still needs to:\n\n1.
React re-render with the new status data\n2. Wait for
`isSourcererLoading = false` (the sourcerer /
data-view\ninitialization)\n3. Mount `EntitiesTableSection`\n4. Fire the
POST to `/internal/search/ese`\n\nThis cascade can easily take **> 5 s**
in slow CI environments, while\n`cy.wait('@entityStoreSearch')` was left
with the default **5 s\ntimeout** — causing \"No request ever occurred\"
failures.\n\n### Changes\n\n**Option A** — raise the
`@entityStoreSearch` timeout to 20 s,
matching\n`@entityStoreStatus`.\n\n**Option B** — consolidate
`cy.wait('@entityStoreStatus')` +\n`cy.wait('@entityStoreSearch')` +
`waitForGroupingTable()` into a
single\n`waitForEntityAnalyticsPageReady()` task helper, so the
three\n`beforeEach` blocks stay DRY and the timeout logic lives in one
place.\n\nBoth options are implemented together: the helper encapsulates
the\ncorrect timeouts and every `beforeEach` now
calls\n`waitForEntityAnalyticsPageReady()`.\n\n## Test plan\n\n- [ ]
Verify `entities_table_grouping.cy.ts` passes locally\n- [ ] Check CI on
this PR for the three previously-failing suites (Group\nby Resolution,
Switching grouping)\n\n## Checklist\n\n- [x] No hardcoded waits
(`cy.wait(ms)`) introduced\n- [x] No `eslint-disable` introduced\n- [x]
Existing tests unchanged — only `beforeEach` wiring consolidated\n\nMade
with [Cursor](https://cursor.com)\n\n---------\n\nCo-authored-by: Cursor
<cursoragent@cursor.com>","sha":"fd88e7fead56d2c4d274ea588c8449fbc4218534"}},{"branch":"9.4","label":"v9.4.1","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"}]}]
BACKPORT-->

Co-authored-by: Gloria Hornero <gloria.hornero@elastic.co>
Co-authored-by: Cursor <cursoragent@cursor.com>
romulets pushed a commit to romulets/kibana that referenced this pull request May 8, 2026
…eout (elastic#268217)

## Summary

Fixes intermittent failures in `entities_table_grouping.cy.ts` reported
in:
- elastic#267794
- elastic#267795
- elastic#267828
- elastic#267965

### Root Cause

PR elastic#265125 added `interceptEntityStoreStatus('running')` +
`cy.wait('@entityStoreStatus', { timeout: 20000 })` to every
`beforeEach` to prevent the page from showing
`EntityStoreDisabledEmptyPrompt`. The intent was correct, but after
`@entityStoreStatus` resolves, the page still needs to:

1. React re-render with the new status data
2. Wait for `isSourcererLoading = false` (the sourcerer / data-view
initialization)
3. Mount `EntitiesTableSection`
4. Fire the POST to `/internal/search/ese`

This cascade can easily take **> 5 s** in slow CI environments, while
`cy.wait('@entityStoreSearch')` was left with the default **5 s
timeout** — causing "No request ever occurred" failures.

### Changes

**Option A** — raise the `@entityStoreSearch` timeout to 20 s, matching
`@entityStoreStatus`.

**Option B** — consolidate `cy.wait('@entityStoreStatus')` +
`cy.wait('@entityStoreSearch')` + `waitForGroupingTable()` into a single
`waitForEntityAnalyticsPageReady()` task helper, so the three
`beforeEach` blocks stay DRY and the timeout logic lives in one place.

Both options are implemented together: the helper encapsulates the
correct timeouts and every `beforeEach` now calls
`waitForEntityAnalyticsPageReady()`.

## Test plan

- [ ] Verify `entities_table_grouping.cy.ts` passes locally
- [ ] Check CI on this PR for the three previously-failing suites (Group
by Resolution, Switching grouping)

## Checklist

- [x] No hardcoded waits (`cy.wait(ms)`) introduced
- [x] No `eslint-disable` introduced
- [x] Existing tests unchanged — only `beforeEach` wiring consolidated

Made with [Cursor](https://cursor.com)

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
mgadewoll pushed a commit to mgadewoll/kibana that referenced this pull request May 8, 2026
…eout (elastic#268217)

## Summary

Fixes intermittent failures in `entities_table_grouping.cy.ts` reported
in:
- elastic#267794
- elastic#267795
- elastic#267828
- elastic#267965

### Root Cause

PR elastic#265125 added `interceptEntityStoreStatus('running')` +
`cy.wait('@entityStoreStatus', { timeout: 20000 })` to every
`beforeEach` to prevent the page from showing
`EntityStoreDisabledEmptyPrompt`. The intent was correct, but after
`@entityStoreStatus` resolves, the page still needs to:

1. React re-render with the new status data
2. Wait for `isSourcererLoading = false` (the sourcerer / data-view
initialization)
3. Mount `EntitiesTableSection`
4. Fire the POST to `/internal/search/ese`

This cascade can easily take **> 5 s** in slow CI environments, while
`cy.wait('@entityStoreSearch')` was left with the default **5 s
timeout** — causing "No request ever occurred" failures.

### Changes

**Option A** — raise the `@entityStoreSearch` timeout to 20 s, matching
`@entityStoreStatus`.

**Option B** — consolidate `cy.wait('@entityStoreStatus')` +
`cy.wait('@entityStoreSearch')` + `waitForGroupingTable()` into a single
`waitForEntityAnalyticsPageReady()` task helper, so the three
`beforeEach` blocks stay DRY and the timeout logic lives in one place.

Both options are implemented together: the helper encapsulates the
correct timeouts and every `beforeEach` now calls
`waitForEntityAnalyticsPageReady()`.

## Test plan

- [ ] Verify `entities_table_grouping.cy.ts` passes locally
- [ ] Check CI on this PR for the three previously-failing suites (Group
by Resolution, Switching grouping)

## Checklist

- [x] No hardcoded waits (`cy.wait(ms)`) introduced
- [x] No `eslint-disable` introduced
- [x] Existing tests unchanged — only `beforeEach` wiring consolidated

Made with [Cursor](https://cursor.com)

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:version Backport to applied version labels release_note:skip Skip the PR/issue when compiling release notes Team:Entity Analytics Security Entity Analytics Team v9.4.0 v9.5.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants