Closes the BasicHTTP front example's gaps - #177
Merged
Merged
Conversation
The refused-desk test now asserts that error.communication, with its send id, was re-entered into the execution, the only event that leads to desk_unreached. The executor names the send with no target for what statifier plans it as, an error.communication raise and no request, and fails it as basichttp_send_without_target, which the durable execution takes as the same error.communication. The guide and the controller moduledoc list the front's 500 answer. Refs: se-0tuc
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.
Closes three gaps in the BasicHTTP front example (the library hold desk).
What changes
asserts that
error.communication, carrying the send id, was re-enteredinto that execution (the
[:statifier_persistence, :execution, :step, :reentered]telemetry event), beside the existing completed status andthe 404 at the location. The chart has two finals and only
error.communicationleads todesk_unreached; a finished executionkeeps no configuration to read the final's id from, which is why the
test reads the event rather than the state.
version
mix.lockresolves) plans a BasicHTTP send with no target as a{:raise, :platform, "error.communication", ...}instruction carryingthe send id, and makes no request
(
Statifier.Send.BasicHTTP.deliver/3).HoldDesk's executor used toreach that instruction through a catch-all named
:basichttp_send_not_planned. It now matches the raise and fails thesend as
{:basichttp_send_without_target, send_id}. The halt is kept,and named truthfully, because it IS the planned outcome here: a durable
execution has no internal queue to raise on, and statifier_persistence
0.24.0 re-enters a failed send as
error.communicationwith the samecontent origin and the same
sendidthe raise carries(
StatifierPersistence.Executions, the error re-entry). Any otherinstruction still halts, now as
:basichttp_instruction_unknown. A newtest drives
execute/2with a no-target send and asserts the failureand that no POST was made.
StatifierRouter.BasicHTTP.Front.response/1answers 500 for any answerit does not otherwise map, a delivery that did not settle, which a
sender may retry. The guide's status table and
StatifierExamplesWeb.BasicHTTPController's moduledoc now say so; theguide and
HoldDesk's moduledoc also say how a no-target send reachesthe execution.
Checks
mix qualitygreen on the committed tree.the raise clause made to continue turned the no-target test red on
its assertion; a refused POST swallowed in
perform/3turned therefused-desk test red on the re-entry assertion.
No changelog fragment: this app keeps no changelog.