Add an end-to-end test for Dijkstra transaction witnessing - #1432
Merged
Conversation
palas
requested review from
Jimbo4350,
carbolymer,
disassembler,
kevinhammond and
newhoggy
as code owners
August 28, 2026 19:49
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a golden end-to-end regression test to ensure cardano-cli dijkstra transaction assemble can consume witness files produced by cardano-cli dijkstra transaction witness, covering the Dijkstra-era witness round-trip that previously failed (issue #1422).
Changes:
- Introduces a new golden property test that builds a raw tx body, produces a detached witness, then assembles a signed tx and asserts the resulting text-envelope era types.
- Registers the new test module in the
cardano-cli-goldentest-suite so it’s compiled and discovered. - Adds a changelog fragment documenting the new test coverage.
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
| cardano-cli/test/cardano-cli-golden/Test/Golden/Dijkstra/Transaction/Assemble.hs | New golden E2E test for Dijkstra build-raw → witness → assemble, asserting expected text envelope types. |
| cardano-cli/cardano-cli.cabal | Adds the new Dijkstra test module to the golden test-suite module list. |
| .changes/20260828_214439_cardano-cli_palas_dijkstra_witnessing_test.yml | Changelog fragment noting the added Dijkstra witnessing regression test. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
carbolymer
reviewed
Aug 31, 2026
palas
force-pushed
the
add-dijkstra-witnessing-test
branch
2 times, most recently
from
August 31, 2026 13:17
88c3cef to
14c8de7
Compare
Exercise the newly enabled Dijkstra transaction commands end to end: build-raw, witness and assemble a transaction, asserting the text envelope types along the way.
Replace the envelope-type substring assertions with byte-exact golden comparisons of both the witness and the assembled transaction, matching the Conway assemble test; the outputs are deterministic since the transaction fields are fixed and Ed25519 signing is deterministic.
palas
force-pushed
the
add-dijkstra-witnessing-test
branch
from
August 31, 2026 13:19
3d947d0 to
4e99a78
Compare
carbolymer
reviewed
Sep 1, 2026
carbolymer
approved these changes
Sep 1, 2026
Replace the made-up transaction in the witnessing end-to-end test with one that was built with these exact commands, submitted to a local Dijkstra testnet (magic 42) and accepted on chain; the golden files are byte-identical to the envelopes that testnet accepted. The witnessing key is the testnet's genesis UTxO key, vendored as a test input.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
This is the regression test for #1422:
transaction assembleused to reject witnessfiles from eras after Conway, and the fix merged without its test because the test needs
dijkstra transactioncommands to exist on master, which only happened in the PR belowthis one.
How to trust this PR
Checklist
.changes/