Skip to content

Commit 108bda4

Browse files
committed
Merge remote-tracking branch 'upstream/main' into graph-popovers-impl
2 parents 3c19184 + 51277e1 commit 108bda4

File tree

2,219 files changed

+45843
-18373
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

2,219 files changed

+45843
-18373
lines changed
Lines changed: 106 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,117 @@
11
---
22
name: scout-best-practices-reviewer
3-
description: Use when writing and reviewing Scout UI and API test files.
3+
description: Review Scout UI/API tests (including Scout test migrations) for best practices, reuse, and parity.
44
---
55

66
# Scout Best Practices Reviewer
77

88
## Overview
99

10-
- Identify whether the spec is **UI** (`test`/`spaceTest`) or **API** (`apiTest`) and review against the relevant best practices.
11-
- Keep feedback concise and actionable: focus on correctness, flake risk, and CI/runtime impact.
12-
- Report findings ordered by severity and include the matching best-practice heading (from the reference) next to each finding.
10+
Perform a static PR review of Scout UI and API test files (`*.spec.ts`) against Scout best practices and existing Scout abstractions (fixtures, page objects, API helpers). Produce actionable, PR-review-ready feedback that pushes for reuse over one-off implementations.
1311

14-
## References
12+
Important: Do not post GitHub comments unless explicitly stated.
1513

16-
Open only what you need:
14+
### Inputs
1715

18-
- Review checklist (tagging, structure, auth, flake control): `references/scout-best-practices.md`
16+
1. Changed `*.spec.ts` files (and imported helpers/fixtures).
17+
- UI Tests: Use `test` / `spaceTest` (usually in `**/test/scout/ui/**`).
18+
- API Tests: Use `apiTest` (usually in `**/test/scout/api/**`).
19+
2. Neighboring Scout code in the same plugin/solution (existing specs + `test/scout/**/fixtures/**`) to spot reuse opportunities and avoid duplicating helpers.
20+
3. Removed/previous tests (if this is a migration) to verify behavior parity.
21+
4. Scout docs (open only what you need):
22+
- Best practices: `docs/extend/scout/best-practices.md`
23+
- Core concepts & fixtures: `docs/extend/scout/core-concepts.md`, `docs/extend/scout/fixtures.md`
24+
- Reuse surfaces: `docs/extend/scout/page-objects.md`, `docs/extend/scout/api-services.md`
25+
- Type-specific guides: `docs/extend/scout/write-ui-tests.md`, `docs/extend/scout/write-api-tests.md`
26+
- As needed: `docs/extend/scout/api-auth.md`, `docs/extend/scout/browser-auth.md`, `docs/extend/scout/parallelism.md`, `docs/extend/scout/deployment-tags.md`, `docs/extend/scout/a11y-checks.md`, `docs/extend/scout/debugging.md`, `docs/extend/scout/run-tests.md`
27+
28+
## Scope (be comprehensive)
29+
30+
- Don’t limit the review to the diff. Look for duplication and missed reuse by scanning:
31+
- existing Scout specs in the same area (and similar suites elsewhere in the repo)
32+
- available fixtures (`docs/extend/scout/fixtures.md` + local `test/scout/**/fixtures`)
33+
- existing page objects, API services, and fixtures (in `@kbn/scout`, solution Scout packages, and plugin-local `test/scout/**`) before suggesting brand-new helpers
34+
35+
### Quick checklist (details live in `docs/extend/scout/best-practices.md`)
36+
37+
- **Reuse-first**: prefer existing `pageObjects`, fixtures, and `apiServices`; if adding helpers/page objects, place them in the right scope (plugin vs solution vs `@kbn/scout`) and register via fixtures.
38+
- **Fixture boundaries**: `apiClient` for the endpoint under test; `apiServices`/`kbnClient` for setup/teardown only; correct auth + common headers.
39+
- **Correctness**: guardrail assertions before dereferencing response fields; validate contract + side effects; stable error assertions.
40+
- **UI scope**: UI tests should focus on user interactions and rendering; avoid “data correctness” assertions (for example exact API response shapes or exact table cell values) unless the UI behavior depends on them. Prefer Scout API tests (or unit/integration) for data correctness coverage.
41+
- **Isolation**: parallel-safe data and resilient cleanup in hooks; no reliance on file ordering or shared mutable state.
42+
- **RBAC / realism**: minimal permissions (avoid `admin` unless required); space-aware behavior covered or explicitly out of scope.
43+
- **Flake traps**: avoid `waitForTimeout()` and time-based assertions/retries; rely on auto-waiting + explicit readiness signals.
44+
- **Cost**: avoid repeating expensive setup; consider a global setup hook for shared one-time operations.
45+
- **Tags / environment**: validate deployment tags and avoid assumptions that only hold in specific environments.
46+
47+
### Migration parity analysis (required when migration is detected)
48+
49+
- **Detect migration** when the PR removes/changes FTR tests (for example `test/functional/**`, `loadTestFile()`, FTR configs) alongside new/changed Scout specs.
50+
- **If migration is detected**:
51+
- Treat parity gaps as `blocker` unless explicitly de-scoped.
52+
- Confirm the suite is the right **test type** (UI vs API): if the old FTR suite is primarily “data correctness”, prefer migrating it to a Scout API test (or unit/integration) rather than a Scout UI test.
53+
- Build a parity map from old scenarios → new Scout coverage (roles, setup/teardown, assertions, cleanup).
54+
- Call out missing behaviors (including error paths) and recommend exactly where to add coverage.
55+
- Escalate meaningful **Scout vs FTR deltas** when they could change what’s actually being tested, weaken coverage, or increase flake risk. Treat these as parity issues that require action (code change or explicit de-scope/sign-off), and include them in the “Migration parity” output section.
56+
- auth/roles used (e.g., `admin` vs viewer), spaces behavior, and permission realism
57+
- headers/internal origin/REST versioning and any other request shaping differences
58+
- retries and error handling differences (e.g., helper methods with `ignoreErrors`, automatic retries)
59+
- parallelism/isolation differences (worker-scoped fixtures, shared state, cleanup semantics)
60+
- classic vs serverless coverage changes (suite removed from one environment but not the other)
61+
- assertion strength changes (weaker/stronger checks, removal of side-effect validation)
62+
- Verify suite wiring/discovery (new specs are picked up by Scout/Playwright config; no orphaned `loadTestFile()`).
63+
- Ensure any intentional de-scopes are explicit, and that tags/permissions remain equivalent and cloud/serverless compatible where applicable.
64+
- **Output**: include the “Migration parity” section only when action is required; otherwise omit it.
65+
66+
## Output format
67+
68+
Output **only** the applicable sections below. Use headings and lists (**no tables**). Group issues by priority: `blocker``major``minor``nit`. Omit empty priorities.
69+
70+
### 1. Findings
71+
72+
#### Blocker
73+
74+
- **<Concern (use exact checklist heading)> — <short summary>**
75+
- **Explanation**: <1-3 concise, actionable sentences>
76+
- **Evidence**: `<file:line>` (add multiple as needed)
77+
- **Suggested change**: <Specific code edit; include a small snippet if helpful>
78+
79+
#### Major
80+
81+
- **<Concern (use exact checklist heading)> — <short summary>**
82+
- **Explanation**: <...>
83+
- **Evidence**: `<file:line>`
84+
- **Suggested change**: <...>
85+
86+
#### Minor
87+
88+
- **<Concern (use exact checklist heading)> — <short summary>**
89+
- **Explanation**: <...>
90+
- **Evidence**: `<file:line>`
91+
- **Suggested change**: <...>
92+
93+
#### Nit
94+
95+
- **<Concern (use exact checklist heading)> — <short summary>**
96+
- **Explanation**: <...>
97+
- **Evidence**: `<file:line>`
98+
- **Suggested change**: <...>
99+
100+
### 2. Migration parity (only if a test migration is detected and action is required)
101+
102+
Include this section only when the PR removes/changes FTR tests alongside new/changed Scout specs **and** you found at least one parity issue that requires someone to step in (code change or an explicit de-scope/sign-off decision).
103+
Do **not** output an FYI parity map. If everything is equivalent (or differences are clearly benign), omit this section.
104+
105+
#### Blocker / Major / Minor / Nit
106+
107+
- **<Concern (use exact checklist heading)> — <scenario name>**
108+
- **Issue**: <Coverage gap or behavior delta that needs action>
109+
- **Old behavior**: <...>
110+
- **New behavior**: <...>
111+
- **Why it matters**: <1-2 sentences on risk/coverage impact>
112+
- **Suggested fix / decision**: <Required. Either a code change or an explicit de-scope/sign-off the reviewer must confirm.>
113+
- **Evidence**: `<file:line>`
114+
115+
## Follow-up
116+
117+
Offer to generate the updated code, fully incorporating the suggested improvements and resolving any parity gaps.

.agents/skills/scout-best-practices-reviewer/references/scout-best-practices.md

Lines changed: 0 additions & 108 deletions
This file was deleted.

.buildkite/pipelines/chrome_forward_testing.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ steps:
107107
depends_on:
108108
- build
109109
timeout_in_minutes: 60
110-
parallelism: 2
110+
parallelism: 3
111111
retry:
112112
automatic:
113113
- exit_status: '-1'
@@ -121,7 +121,7 @@ steps:
121121
depends_on:
122122
- build
123123
timeout_in_minutes: 60
124-
parallelism: 10
124+
parallelism: 11
125125
retry:
126126
automatic:
127127
- exit_status: '-1'
@@ -135,7 +135,7 @@ steps:
135135
depends_on:
136136
- build
137137
timeout_in_minutes: 60
138-
parallelism: 5
138+
parallelism: 6
139139
retry:
140140
automatic:
141141
- exit_status: '-1'
@@ -163,7 +163,7 @@ steps:
163163
depends_on:
164164
- build
165165
timeout_in_minutes: 60
166-
parallelism: 1
166+
parallelism: 2
167167
retry:
168168
automatic:
169169
- exit_status: '-1'
@@ -191,7 +191,7 @@ steps:
191191
depends_on:
192192
- build
193193
timeout_in_minutes: 60
194-
parallelism: 1
194+
parallelism: 2
195195
retry:
196196
automatic:
197197
- exit_status: '-1'
@@ -205,7 +205,7 @@ steps:
205205
depends_on:
206206
- build
207207
timeout_in_minutes: 60
208-
parallelism: 4
208+
parallelism: 5
209209
retry:
210210
automatic:
211211
- exit_status: '-1'
@@ -303,7 +303,7 @@ steps:
303303
depends_on:
304304
- build
305305
timeout_in_minutes: 60
306-
parallelism: 7
306+
parallelism: 8
307307
retry:
308308
automatic:
309309
- exit_status: '-1'
@@ -331,7 +331,7 @@ steps:
331331
depends_on:
332332
- build
333333
timeout_in_minutes: 60
334-
parallelism: 1
334+
parallelism: 2
335335
retry:
336336
automatic:
337337
- exit_status: '-1'
@@ -387,7 +387,7 @@ steps:
387387
depends_on:
388388
- build
389389
timeout_in_minutes: 60
390-
parallelism: 8
390+
parallelism: 9
391391
retry:
392392
automatic:
393393
- exit_status: '-1'

.buildkite/pipelines/es_serverless/verify_es_serverless_image.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ steps:
110110
preemptible: true
111111
depends_on: build
112112
timeout_in_minutes: 60
113-
parallelism: 4
113+
parallelism: 5
114114
retry:
115115
automatic:
116116
- exit_status: '-1'
@@ -127,7 +127,7 @@ steps:
127127
preemptible: true
128128
depends_on: build
129129
timeout_in_minutes: 60
130-
parallelism: 10
130+
parallelism: 11
131131
retry:
132132
automatic:
133133
- exit_status: '-1'
@@ -144,7 +144,7 @@ steps:
144144
preemptible: true
145145
depends_on: build
146146
timeout_in_minutes: 60
147-
parallelism: 5
147+
parallelism: 6
148148
retry:
149149
automatic:
150150
- exit_status: '-1'
@@ -178,7 +178,7 @@ steps:
178178
preemptible: true
179179
depends_on: build
180180
timeout_in_minutes: 60
181-
parallelism: 1
181+
parallelism: 2
182182
retry:
183183
automatic:
184184
- exit_status: '-1'
@@ -212,7 +212,7 @@ steps:
212212
preemptible: true
213213
depends_on: build
214214
timeout_in_minutes: 60
215-
parallelism: 1
215+
parallelism: 2
216216
retry:
217217
automatic:
218218
- exit_status: '-1'
@@ -263,7 +263,7 @@ steps:
263263
preemptible: true
264264
depends_on: build
265265
timeout_in_minutes: 60
266-
parallelism: 1
266+
parallelism: 2
267267
retry:
268268
automatic:
269269
- exit_status: '-1'

0 commit comments

Comments
 (0)