diff --git a/tests/fixtures/competency/string-event-binding/SCENARIO.md b/tests/fixtures/competency/string-event-binding/SCENARIO.md new file mode 100644 index 0000000..f5eab91 --- /dev/null +++ b/tests/fixtures/competency/string-event-binding/SCENARIO.md @@ -0,0 +1,5 @@ +# Producer and consumer joined by a string key + +Question: What consumes the event emitted when an order completes? + +Expected: connect producer and consumer through the exact `order.completed` key; do not connect the unrelated refund subscription. Missing consumers must remain explicit gaps. diff --git a/tests/fixtures/competency/string-event-binding/consumer.py b/tests/fixtures/competency/string-event-binding/consumer.py new file mode 100644 index 0000000..844e155 --- /dev/null +++ b/tests/fixtures/competency/string-event-binding/consumer.py @@ -0,0 +1,3 @@ +def register(bus, send_receipt): + bus.subscribe('order.completed', send_receipt) + bus.subscribe('order.refunded', lambda event: None) diff --git a/tests/fixtures/competency/string-event-binding/producer.py b/tests/fixtures/competency/string-event-binding/producer.py new file mode 100644 index 0000000..231aa7f --- /dev/null +++ b/tests/fixtures/competency/string-event-binding/producer.py @@ -0,0 +1,2 @@ +def complete_order(bus, order_id): + bus.publish('order.completed', {'id': order_id})