camunda / camunda/api-test-generator
Test class 3: side-effect emission — verify a downstream entity appears
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 3
- Avg merge
- 13h 41m
- Merged PRs (30d)
- 23
Description
Tracking issue for Class 3 of the test taxonomy (parent: meta-issue #192). Depends on Class 2 (#189) for shared vocabulary.
Shape
Pre/post state: subject entity unchanged (or transitions per Class 2), but a downstream entity appears in another store as a consequence.
Verifier: search the downstream collection scoped to the subject.
Op examples
| Op | Subject | Downstream entity |
|---|---|---|
publishMessage |
message name + correlation key | MessageSubscription correlated → searchCorrelatedMessageSubscriptions |
createProcessInstance |
process instance | element instances + jobs appear (currently asserted only implicitly) |
| any op that emits an audit log record | various | audit log entry → searchAuditLogs |
Goal
Reuse Class 2's runtimeEntities schema. Add a causedBy cross-reference:
"runtimeEntities": {
"MessageSubscription": {
...,
"causedBy": [
{ "op": "publishMessage", "linkBy": ["messageName", "correlationKey"] }
]
}
}
The planner emits: act op → witness on the downstream entity scoped by the link fields → assert presence.
Acceptance criteria
causedByfield added toruntimeEntitiesschema.- At least one Class 3 generated test (e.g.
publishMessage→ witness onsearchCorrelatedMessageSubscriptions). - L3 invariant pinning the chain shape.
Why this falls out of Class 2 cheaply
The witness primitive is the same; only the link-by-fields differ. If Class 2 lands cleanly, this should be a small PR.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the Class 2 runtimeEntities schema and planner, then inspect how publishMessage and searchCorrelatedMessageSubscriptions are represented in generated tests. Add the causedBy relationship and verify that the generated test witnesses the downstream entity using messageName and correlationKey. Confirm the L3 invariant pins the intended chain shape.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- testing-qa, tooling
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100