camunda / camunda/api-test-generator

Test class 3: side-effect emission — verify a downstream entity appears

Open
#190 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

design enhancement
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

  1. causedBy field added to runtimeEntities schema.
  2. At least one Class 3 generated test (e.g. publishMessage → witness on searchCorrelatedMessageSubscriptions).
  3. 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.