Repository navigation
refactor: align the remote, operaton-embedded, fullstack and vanillabp examples - #108
Merged
Merged
Conversation
emaarco
force-pushed
the
emaarco/align-remaining-drift
branch
from
November 5, 2026 12:38
972cf3e to
ece92fb
Compare
…p examples Aligns the remaining accidental drift: the remote examples share the canonical test builder, tests, ports and services; operaton-embedded and operaton-process-engine-api move their tests to the packages their siblings use; fullstack renumbers its Bruno scenarios like the other examples; zeebe-vanillabp keeps its aggregate-based use cases (now recorded in drift.yml) and aligns everything around them.
Every shared test class now carries the union of its meaningful cases in all examples of its language (engine-specific tests within their engine family), and the assertions dropped while aligning the remote examples are back.
emaarco
force-pushed
the
emaarco/align-remaining-drift
branch
from
November 5, 2026 14:18
a3239ee to
9ac8751
Compare
emaarco
enabled auto-merge (squash)
November 5, 2026 14:18
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.
Why
After #106, 286 paths (466 copies) were still listed under
differsas "to be aligned". Most of them sat in four examples: the two remote examples, operaton-embedded, fullstack-cibseven-embedded and zeebe-vanillabp. This change aligns what was accidental there and records the one deliberate difference, zeebe-vanillabp's aggregate-based use cases.What
TestObjectBuildernow has the canonical API, and the application, domain, REST and outbound tests, ports, services and controllers that only differed by style are copied from the embedded examples. JSpecify is dropped from the example-service, where it is no longer needed; the generated engine client still uses it.process/,process/util/,process/model/,architecture/,openapi/andactuator/to the packages its siblings use (adapter/process/…,adapter/inbound/rest/, the root package). The pitest excludes,AGENTS.md, skills, agents, ADR-0004 and twelve Bruno scenarios follow.ArchitectureTestmoves to the root package, with its pitest exclude andAGENTS.mdcommand updated.06-list-and-inbox→07-list-and-inbox,07-alternative-declined→08-…,08-invalid-request→09-…,09-alternative-via-tasklist→10-…), and the scenarios are identical to cibseven-embedded's. The ADR numbering stays as it is.@Transactional.drift.ymlrecords this with a reason for the 54 affected files, and the code around it is aligned with zeebe-native (tests, comments, ports, services, controllers, Bruno). Its tests gain the "fails for an unknown application" cases from zeebe-native.drift.ymlanddrift.lock.ymlare updated: stale and moved entries are removed, and the new reasons are added.Verification
npm run drift: 12 examples in step, 4691 locked copies (was 4473); about 82 % of all non-Dependabot files are identical and locked. Copies still listed as "to be aligned" dropped from 466 to about 260.npm test,npm run generate:checkandscripts/check-owner.shpass../mvnw -B verifyfor Java,./gradlew buildfor Kotlin).openapi/openapi.jsonand the generated process APIs are unchanged in every example.Out of scope / Follow-ups
SelectAlternativeUseCasedoes not rejectalternativeFound=truewithout abikeId(202 instead of the 400 the other examples return). Changing it is a business decision.BikeDealerAdapterhas noBIKE-FAILincident-demo bike; operaton-remote's JavaRemoteLeasingProcessAdapterdoes not check for a task without an id.