Skip to content

test(engine): add end-to-end Runner.Run pipeline integration tests#19

Merged
jkleinne merged 3 commits into
mainfrom
test/runner-pipeline-integration
Jun 2, 2026
Merged

test(engine): add end-to-end Runner.Run pipeline integration tests#19
jkleinne merged 3 commits into
mainfrom
test/runner-pipeline-integration

Conversation

@jkleinne

@jkleinne jkleinne commented Jun 2, 2026

Copy link
Copy Markdown
Owner

Summary

Adds the end-to-end Runner.Run() integration test, the last open item on the tech-spec pre-production checklist. The pipeline's orchestration (prerequisite check, per-config lock, job dispatch order, rclone remote expansion, partial-failure accumulation, dry-run, summary assembly) was previously exercised only through leaf-method tests; nothing drove Run() itself.

The new internal/engine/runner_integration_test.go drives the real pipeline against real rsync and rclone's local backend (no mocks, matching the existing executor-test convention), across six scenarios:

  • Multi-engine happy path: an rsync job and an rclone job both run and land files.
  • Partial failure: a missing source fails, the pipeline continues, and the error is recorded.
  • Rclone multi-remote expansion: one job over two remotes yields adjacent per-remote results in declared order.
  • Dry-run: nothing is written to the destination.
  • --only filtering: the unselected job is skipped and its destination stays untouched.
  • Lock contention: a second run against the same config is rejected.

@jkleinne jkleinne merged commit 8aca865 into main Jun 2, 2026
2 checks passed
@jkleinne jkleinne deleted the test/runner-pipeline-integration branch June 2, 2026 17:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant