Skip to main content

scout-create-scaffold

Generate or repair a Scout test scaffold for a Kibana plugin/package (test/scout*/{api,ui} Playwright configs, fixtures, example specs). Use when you need the initial Scout directory structure; prefer `node scripts/scout.js generate` with flags for non-interactive/LLM execution.

Informations de source

Dépôt
elastic/kibana
Dernière activité de la source
12 mai 2026 à 11:51
Langue détectée de SKILL.md
anglais
Étoiles
21 236
Forks
8 623

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
scout-create-scaffold
description
Generate or repair a Scout test scaffold for a Kibana plugin/package (test/scout*/{api,ui} Playwright configs, fixtures, example specs). Use when you need the initial Scout directory structure; prefer `node scripts/scout.js generate` with flags for non-interactive/LLM execution.
# Create Scout Scaffold (Generator-First) ## Related skills - **`scout-migrate-from-ftr`** — After generating files, wire TypeScript for CI using **Pattern A** or **Pattern B** (*Where Scout tests are typechecked* in that skill). This skill documents layout; the migration skill has the full rules (relative imports, `kbn_references`, `node scripts/type_check --project …`). ## Inputs to Collect - Module root (repo-relative path to the plugin/package directory, e.g. `x-pack/platform/plugins/shared/maps`) - Test type: `api`, `ui`, or `both` - Scout root directory name under `<moduleRoot>/test/` - Default: `scout` (creates `<moduleRoot>/test/scout/...`) - Custom config set: `scout_<configSet>` (for example `scout_uiam_local`, `scout_cspm_agentless`) - For UI scaffolds: whether tests can run in parallel (space-isolated). Default is parallel; use sequential when isolation is not possible. ## Generate (Preferred) Run from the Kibana repo root: ```bash node scripts/scout.js generate --path <moduleRoot> --type <api|ui|both> ``` Common variants: ```bash # UI scaffold, sequential (non-parallel) node scripts/scout.js generate --path <moduleRoot> --type ui --no-ui-parallel # Generate into a custom Scout root (test/scout_<configSet>/...) node scripts/scout.js generate --path <moduleRoot> --type both --scout-root scout_<configSet> # If some Scout directories already exist, generate only missing sections without prompting node scripts/scout.js generate --path <moduleRoot> --type both --force ``` Notes: - The generator will not modify existing `test/<scout-root>/{api,ui}` sub-directories. - If any Scout directories already exist and you pass `--path`, you must also pass `--force` (otherwise the command fails rather than prompting). ## What It Creates - API scaffold: - `test/<scout-root>/api/playwright.config.ts` - `test/<scout-root>/api/fixtures/constants.ts` - `test/<scout-root>/api/fixtures/index.ts` - `test/<scout-root>/api/tests/example.spec.ts` - UI scaffold (sequential): - `test/<scout-root>/ui/playwright.config.ts` - `test/<scout-root>/ui/fixtures/constants.ts` - `test/<scout-root>/ui/fixtures/index.ts` - `test/<scout-root>/ui/fixtures/page_objects/*` - `test/<scout-root>/ui/tests/example.spec.ts` - UI scaffold (parallel): - `test/<scout-root>/ui/parallel.playwright.config.ts` - `test/<scout-root>/ui/parallel_tests/example_one.spec.ts` - `test/<scout-root>/ui/parallel_tests/example_two.spec.ts` - `test/<scout-root>/ui/parallel_tests/global.setup.ts` - `test/<scout-root>/ui/parallel_tests/global.teardown.ts` is **not** generated; opt in by adding the file with a `globalTeardownHook(...)` call. See `scout-ui-testing/references/scout-ui-parallelism.md`. The generator **does not** create **`tsconfig.json`** files. Playwright runs without them, but **`node scripts/type_check`** (CI) must still include Scout specs in a TS project—see **TypeScript layout** below. ## TypeScript layout (`check_types`) Pick **one** pattern and wire it after `scout.js generate` completes: ### Pattern A — plugin root includes Scout (e.g. `discover_enhanced`) - In the **plugin or package root** `tsconfig.json`, add **`test/<scout-root>/**/*`** (or broader **`test/**/*`**) to **`include`**. - Add **`kbn_references`** for the Scout stack you use: - Platform / generic: **`@kbn/scout`**. - Observability: **`@kbn/scout-oblt`**; for API tests using synthtrace workers, also **`@kbn/scout-synthtrace`**, **`@kbn/synthtrace-client`** (and **`@kbn/rison`** for UI if needed). - Match sibling plugins in the same solution for consistency. - **Do not** add nested `test/<scout-root>/{ui,api}/tsconfig.json` when using this pattern (one program for plugin + Scout). - **Allows** relative imports from specs/fixtures into **`server/`** or **`common/`** when the test needs shared registration constants or light server utilities. ### Pattern B — dedicated `tsconfig.json` under `test/<scout-root>/{ui,api}/` - Add **`test/<scout-root>/api/tsconfig.json`** and/or **`test/<scout-root>/ui/tsconfig.json`** with **`extends`**, **`include`**: `["**/*"]`, and scoped **`kbn_references`** (see SLO, `data_views`, infra Scout modules for examples). - Keeps the **main** plugin typecheck smaller. - **Does not** allow relative imports that climb into **`../../../../server/...`** or **`public/...`** from those folders—TypeScript will treat `server/**` as part of the wrong composite project (`TS6059` / `TS6307`). Use **`fixtures/constants.ts`**, **`common/`**, or switch to **Pattern A**. ### After wiring either pattern 1. Run **`yarn kbn bootstrap`** so `packages/kbn-ts-projects/config-paths.json` picks up added or removed `tsconfig.json` paths. 2. Validate with **`node scripts/type_check --project <path-to-tsconfig.json>`** (plugin root `tsconfig.json` for **A**, or `test/<scout-root>/api/tsconfig.json` / UI sibling for **B**). ## After Generating - Custom server config sets: - If you create/use `test/scout_<configSet>`, you typically also need a matching server config under `src/platform/packages/shared/kbn-scout/src/servers/configs/config_sets/<configSet>`. - `start-server` requires `--serverConfigSet <configSet>` when using a custom server config set. ## Path Conventions (Specs) - UI sequential specs: `test/scout*/ui/tests/**/*.spec.ts` - UI parallel specs: `test/scout*/ui/parallel_tests/**/*.spec.ts` - API specs: `test/scout*/api/tests/**/*.spec.ts`
Voir sur GitHub