Skip to content

Add chained transaction e2e smoke test#177

Merged
galt-tr merged 4 commits into
mainfrom
chainedTxSmokeTest
Jun 1, 2026
Merged

Add chained transaction e2e smoke test#177
galt-tr merged 4 commits into
mainfrom
chainedTxSmokeTest

Conversation

@galt-tr
Copy link
Copy Markdown
Contributor

@galt-tr galt-tr commented May 27, 2026

This pull request introduces a new "smoke test" suite for the project. The smoke tests are fast, in-process integration tests that exercise arcade's core transaction propagation path without requiring Docker or external services. The suite is designed to run quickly on every PR, catching regressions in transaction ordering, batching, and propagation logic. The main changes include the addition of the smoke test workflow, the test harness and chain-building utilities, and a comprehensive chained transaction propagation test.

New smoke test infrastructure and workflow:

  • Added .github/workflows/smoke.yml to define a fast, container-free smoke test workflow that runs on every PR and push to main. This workflow runs the new smoke tests using the smoke build tag.

Smoke test harness and utilities:

  • Introduced tests/smoke/harness.go to provide an in-process arcade runtime for tests, including configuration, service management, and lifecycle handling. This enables the tests to start arcade with a memory Kafka broker, Pebble store, and a fake teranode.
  • Added tests/smoke/chains.go to generate forests of chained transactions with configurable depth and count, ensuring realistic parent-child relationships for propagation tests.

Smoke test documentation and test case:

  • Added tests/smoke/doc.go to document the purpose, usage, and structure of the smoke test suite.
  • Implemented tests/smoke/chained_txs_test.go, a comprehensive test that submits ~10,000 chained transactions and asserts critical propagation invariants, including parent-child ordering, batching, and deduplication.

@galt-tr galt-tr marked this pull request as ready for review May 27, 2026 17:15
@galt-tr galt-tr requested a review from mrz1836 as a code owner May 27, 2026 17:15
@github-actions github-actions Bot added feature Any new significant addition test Unit tests, mocking, integration testing labels May 27, 2026
@mrz1836 mrz1836 assigned galt-tr and unassigned mrz1836 May 28, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR adds a container-free smoke test suite that boots arcade in-process and verifies chained transaction propagation ordering through the API → Kafka → propagation → teranode path.

Changes:

  • Adds an in-process smoke harness with memory Kafka, Pebble storage, and an httptest teranode recorder.
  • Adds transaction chain builders and a chained transaction ordering/deduplication smoke test.
  • Adds a GitHub Actions workflow to run smoke tests on PRs, pushes to main, and manual dispatch.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.

Show a summary per file
File Description
.github/workflows/smoke.yml Adds CI workflow for go test -tags=smoke.
tests/smoke/harness.go Boots and manages an in-process arcade runtime for smoke tests.
tests/smoke/recording_teranode.go Provides fake teranode endpoint and records propagated batches.
tests/smoke/chains.go Builds deterministic chained transaction forests for propagation tests.
tests/smoke/chained_txs_test.go Adds end-to-end smoke assertions for ordering, batching, and deduplication.
tests/smoke/doc.go Documents the smoke test package and invocation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@galt-tr galt-tr merged commit 61a56cd into main Jun 1, 2026
53 checks passed
@galt-tr galt-tr deleted the chainedTxSmokeTest branch June 1, 2026 02:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feature Any new significant addition test Unit tests, mocking, integration testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants