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.

来源信息

仓库
elastic/kibana
最近来源活动
2026年5月12日 11:51
检测到的 SKILL.md 语言
英语
星标
21,236
分支
8,623

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
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`
在 GitHub 查看