test(plugin-dev): add e2e integration tests for plugin lifecycle and dev workflow - #223
Conversation
|
/fs-review |
|
🤖 Finished Review · ✅ Success · Started 7:09 PM UTC · Completed 7:31 PM UTC Commit: Runtime: claude · Model: sonnet → claude-sonnet-4-6 · Effort: high · Cost: $5.04 |
|
Risk Assessment: moderate (2/5) DetailsTest-heavy PR with one protected-path change (AGENTS.md) and moderate historical churn; 62/38 weighted composite of Tier1=2.0 and Tier2=2.67 yields 2.25, rounding to 2 (moderate). Previous runRisk Assessment: low (1/5) DetailsTest-only PR adding e2e integration tests with no production code, CI workflow, or dependency changes; composite score 0.62x1.625 + 0.38x1.17 = 1.45 -> 1 (low), driven by blast radius from 632 line additions offset by a 0.67 test file ratio, single known non-first-time author, and no historical churn or regression patterns on the affected paths. |
ReviewFindingsMedium
Low
Next steps:
Previous runReviewFindingsMedium
Low
Next steps:
|
|
/fs-review |
|
🤖 Finished Review · ✅ Success · Started 10:46 AM UTC · Completed 11:03 AM UTC Commit: Runtime: claude · Model: sonnet → claude-sonnet-4-6 · Effort: high · Cost: $4.46 |
dce79d9 to
71d6683
Compare
71d6683 to
0fbb2a6
Compare
…dev workflow - Add e2e-tests/plugin-dev.test.ts verifying plugin dev start, status, update, and stop --clean lifecycle against real compose container runtimes - Add e2e-tests/support/rhdh-local-fixture.ts providing lightweight compose fixture runtime (nginx:alpine on :7007 and alpine:latest for installer) - Verify preflight validation errors (missing directory, missing compose files, missing override config, unconfigured generated config, missing backend dist-types, invalid container tool, not-running checks on update/restart) - Verify staging to local-plugins/<plugin-name>, generated YAML config, and automatic inclusion into dynamic-plugins.override.yaml via --configure - Instrument phase timings (scaffold, install, tsc, build, test, export) in e2e-tests/plugin-new.test.ts and assert completion within 5-minute threshold - Add RunCommandOptions type with env support and fix error diagnostic reporting - Document E2E_RHDH_LOCAL_DIR contract in AGENTS.md and test suite headers - Require compose container engine in CI while gracefully skipping on local dev hosts Assisted-By: opencode Signed-off-by: Stan Lewis <gashcrumb@gmail.com> rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED
0fbb2a6 to
b277802
Compare
|



Summary
Adds end-to-end integration tests for
rhdh-cli plugin devand the full plugin developer on-ramp workflow (RHIDP-16674).plugin devE2E Test Suite (e2e-tests/plugin-dev.test.ts)Pre-flight & Validation Errors:
--rhdh-local-diris missing / unsetcompose.yaml,compose-dynamic-plugins-root.yaml, scripts)dynamic-plugins.override.yamlis missingdynamic-plugins.override.yamlis unconfigured and--configureis omitteddist-types/is missing--container-toolis providedupdateandrestartwhen runtime is not runningConfiguration & Staging:
configs/dynamic-plugins/rhdh-cli.generated.local.yamlintodynamic-plugins.override.yamlvia--configurerhdh-cli.generated.local.yamlwith correct plugin package path (./local-plugins/<plugin-name>),disabled: false, andpullPolicy: Alwayslocal-plugins/<plugin-name>Real Container Engine Lifecycle:
nginx:alpineHTTP 200 on:7007+alpine:latestfor the dynamic plugin installer)podman,docker)start --configure(up, installer container die/died events, HTTP readiness polling),status(JSON status parsing),update(re-export, re-stage, service restart), andstop --clean(compose down)RHDH_LOCAL_DIR(orE2E_RHDH_LOCAL_DIR) is suppliedDeveloper On-ramp Timing & Acceptance Verification (
e2e-tests/plugin-new.test.ts)scaffold,install,tsc,build,test, andexportphasesfrontend-plugin,backend-plugin,catalog-processor-module) completes within the 5-minute requirement (< 300s)CI Integration (
.github/workflows/pr.yaml)pr.yamlto wiredocker-composesymlink andpodman-composeso both engines can be validated in CICloses #RHIDP-16674