elsa-core/test/integration/Elsa.Bpmn.Interchange.IntegrationTests/Endpoints
Sipke Schoorstra 9cce8d91af
fix(bpmn): keep a top-level call activity's fire-and-forget flag through the document PUT (#8082)
* fix(bpmn): keep a top-level call activity's fire-and-forget flag through the document PUT

A call activity's call options (vw:waitForCompletion) live only on its CallProcess
work binding, which the bpmnDefinitions document cannot carry, so the document PUT
rebuilt every call activity fresh and silently turned a fire-and-forget call into a
waiting one. Reuse the stored options for a top-level call activity whose element id
and calledElement are unchanged, mirroring how a kept subprocess already carries its
own bindings across; a changed calledElement still binds fresh rather than inheriting
options authored for a different process.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* refactor(bpmn): read the stored BPMN source once per document PUT

ImportDocumentAsync's two carry-across helpers each independently
looked up SourceXmlCustomPropertyKey and parsed it, so every document
PUT read and parsed the stored BPMN source twice. Read and parse it
once in ImportDocumentAsync and pass the result to both helpers.

Also extends the no-op PUT ETag-stability theory to the
top-level-call-activity.bpmn fixture, which was not previously covered.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* refactor(bpmn): filter call activities with Where

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-12 11:41:50 -07:00
..
BpmnInterchangeEndpointTests.cs fix(bpmn): keep a top-level call activity's fire-and-forget flag through the document PUT (#8082) 2026-09-12 11:41:50 -07:00