ch19_guards

show:
mock turns=2 · messages=0
live turns=2 · messages=0
scenario an_order_within_budget
scenario an_order_within_budget · 0.2ms · 1 tool · ended: total_ordered=8; success: ordered 8 x milk
tool place_order · 0.0ms · given: item=milk, quantity=8 · returned: ordered 8 x milk
args {"item": "milk", "quantity": 8}
hook {"when": "pre", "by": "refuse_if_over_budget", "note": null, "veto": null, "replacement": null}
dispatched {"value": "ordered 8 x milk"}
hook {"when": "post", "by": "record_the_order", "note": "total_ordered now 8", "veto": null, "replacement": null}
result {"value": "ordered 8 x milk"}
ended {"reason": "total_ordered=8; success: ordered 8 x milk"}
scenario an_order_within_budget · 0.2ms · 1 tool · ended: total_ordered=8; success: ordered 8 x milk
tool place_order · 0.0ms · given: item=milk, quantity=8 · returned: ordered 8 x milk
args {"item": "milk", "quantity": 8}
hook {"when": "pre", "by": "refuse_if_over_budget", "note": null, "veto": null, "replacement": null}
dispatched {"value": "ordered 8 x milk"}
hook {"when": "post", "by": "record_the_order", "note": "total_ordered now 8", "veto": null, "replacement": null}
result {"value": "ordered 8 x milk"}
ended {"reason": "total_ordered=8; success: ordered 8 x milk"}
scenario a_split_order_exceeds_the_budget
scenario a_split_order_exceeds_the_budget · 0.0ms · 2 tools · ended: total_ordered=8; success: ordered 8 x milk; error: ['place_order'] blocked before it ran: 8 already ordered this run; 8 more would be 16, over the budget of 12
tool place_order · 0.0ms · given: item=milk, quantity=8 · returned: ordered 8 x milk
args {"item": "milk", "quantity": 8}
hook {"when": "pre", "by": "refuse_if_over_budget", "note": null, "veto": null, "replacement": null}
dispatched {"value": "ordered 8 x milk"}
hook {"when": "post", "by": "record_the_order", "note": "total_ordered now 8", "veto": null, "replacement": null}
result {"value": "ordered 8 x milk"}
tool place_order · 0.0ms · given: item=milk, quantity=8
args {"item": "milk", "quantity": 8}
hook {"when": "pre", "by": "refuse_if_over_budget", "note": null, "veto": "8 already ordered this run; 8 more would be 16, over the budget of 12", "replacement": null}
ended {"reason": "total_ordered=8; success: ordered 8 x milk; error: ['place_order'] blocked before it ran: 8 already ordered this run; 8 more would be 16, over the budget of 12"}
scenario a_split_order_exceeds_the_budget · 0.0ms · 2 tools · ended: total_ordered=8; success: ordered 8 x milk; error: ['place_order'] blocked before it ran: 8 already ordered this run; 8 more would be 16, over the budget of 12
tool place_order · 0.0ms · given: item=milk, quantity=8 · returned: ordered 8 x milk
args {"item": "milk", "quantity": 8}
hook {"when": "pre", "by": "refuse_if_over_budget", "note": null, "veto": null, "replacement": null}
dispatched {"value": "ordered 8 x milk"}
hook {"when": "post", "by": "record_the_order", "note": "total_ordered now 8", "veto": null, "replacement": null}
result {"value": "ordered 8 x milk"}
tool place_order · 0.0ms · given: item=milk, quantity=8
args {"item": "milk", "quantity": 8}
hook {"when": "pre", "by": "refuse_if_over_budget", "note": null, "veto": "8 already ordered this run; 8 more would be 16, over the budget of 12", "replacement": null}
ended {"reason": "total_ordered=8; success: ordered 8 x milk; error: ['place_order'] blocked before it ran: 8 already ordered this run; 8 more would be 16, over the budget of 12"}