n8n-check / local case builder
Your workflow.
Your first regression check.
Turn a workflow export into fixture inputs, expected outputs, and a repeatable check of the actual n8n engine.
01 / Bring your workflow
Start with an export.
In n8n, pin the input and expected-output nodes after a known-good manual run, then export the workflow. You can also enter fixture JSON below.
Local file read · JSON fixtures · free & MIT
Or paste an exported workflow
02 / Author the contract
This node is replaced by the input items below. Its downstream nodes execute.
Choose a downstream node whose JSON items should match your expectation.
Cut outgoing connections at the selected output node. Independently reachable branches continue to execute. Review the selected slice below. For loops, choose a node after the completed output.
Compare every JSON field in execution order.
Start at the n8n item: json.id or json.customer.id. Values retain execution order. Missing fields fail the check.
JSON object array, e.g. [{"id": 42}]. At least one item.
Exact JSON items in run order. An empty array checks for zero items. Pins prefill branch 0.
HTTP mock contracts
For each HTTP Request node, supply the mock response status/body, local route, and exact expected request count. Add expect.bodies to check outgoing payloads. Sequential responses exercise retries. routes[].path matches the final path plus query string (for example /items?id=42); n8n’s exported query-parameter settings still apply.
03 / Run the actual engine
From download to a real result.
- Start Docker, then Download local run pack above.
- Unzip it. Open a terminal in the extracted folder.
- Run
sh run.sh. Read the checks in your terminal and the JSON/JUnit files inresults/.
sh run.sh
The first run downloads the pinned runner and chosen n8n image. Later runs reuse the local build cache. The workflow and fixtures remain on your computer; the check runs in a loopback-only Docker container.
Requirements: Docker running with Linux containers, and a shell on Linux, macOS, or WSL2. Exported JSON and the editable case are included in the pack.
The sample adds synthetic pinned snapshots to our silent-filter workflow. Reference execution: the fixed export preserves eight useful rows; the broken export loses them while n8n completes successfully. Try the same downloaded case with both exports.
Keep the same check in CI.
- Place
workflow.jsonandcase.jsonat the root of a GitHub repository. - Download the CI file above and save it as
.github/workflows/n8n-check.yml. - Commit. Open Actions → n8n release check for the summary and artifacts.
GitHub Actions usage follows your account’s plan. You can also use the CLI with your existing n8n installation.
Case builder scope: JSON item fixtures, one assertion node/branch, and HTTP mocks. Self-contained slices with credential-free downstream nodes use the existing runner contract.
Try a known regression first
Two successful runs.
One failed identity check.
Download both exports and the same test case. Run the original, then the deliberately changed IDs. Each keeps its own JSON/JUnit reports.
Download comparison (.zip)sh fixed/run.sh # 5/5 · exit 0 sh wrong-id/run.sh # 4/5 · expected exit 1
Extract into a new folder. Requires Docker + a shell on Linux, macOS, or WSL2. First run downloads the runtime. Source & recorded results ↗
From a first case to a client-ready release
Want the scenarios designed
and the pack delivered?
A $650 fixed-scope pilot covers one workflow or slice, up to 25 nodes, two mocked HTTP integrations, and eight agreed scenarios, with JSON/JUnit reports and a handoff guide.