Skip to content

Commit 81d560d

Browse files
Enabled more ClientOrders code to be mutated
Some methods extracted to allot granular mutant selection
1 parent 317a2cc commit 81d560d

File tree

2 files changed

+15
-4
lines changed

2 files changed

+15
-4
lines changed

rails_application/.mutant.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,10 @@ matcher:
3030
- ClientOrders::Configuration#with_order
3131
- ClientOrders::Rendering::OrdersList*
3232
- ClientOrders::RemoveItemFromOrder*
33-
- ClientOrders::AddItemToOrder*
33+
- ClientOrders::AddItemToOrder#show_remove_item_button
34+
- ClientOrders::AddItemToOrder#remove_button_html
35+
- ClientOrders::AddItemToOrder#broadcast_to_ui
36+
- ClientOrders::AddItemToOrder#call
3437
- ClientOrders::ProductHandlers::ChangeProductName*
3538
- ClientOrders::ProductHandlers::ChangeProductPrice*
3639
- ClientOrders::ProductHandlers::RegisterProduct*

rails_application/app/read_models/client_orders/add_item_to_order.rb

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,30 @@ class AddItemToOrder
55
include ActionView::Helpers::FormTagHelper
66

77
def call(event)
8+
item, order_id, product_id = persist_item(event)
9+
broadcast_to_ui(item, order_id, product_id)
10+
end
11+
12+
private
13+
14+
def persist_item(event)
815
order_id = event.data.fetch(:order_id)
916
product_id = event.data.fetch(:product_id)
1017
create_draft_order(order_id)
1118
item =
1219
find(order_id, product_id) ||
13-
create(order_id, product_id)
20+
create(order_id, product_id)
1421
item.product_quantity += 1
1522
item.save!
23+
return item, order_id, product_id
24+
end
1625

26+
def broadcast_to_ui(item, order_id, product_id)
1727
broadcast_update(order_id, product_id, "product_quantity", item.product_quantity)
1828
broadcast_update(order_id, product_id, "value", ActiveSupport::NumberHelper.number_to_currency(item.value))
1929
show_remove_item_button(order_id, product_id)
2030
end
2131

22-
private
23-
2432
def show_remove_item_button(order_id, product_id)
2533
broadcast_update(order_id, product_id, "remove_item_button", remove_button_html(order_id, product_id))
2634
end

0 commit comments

Comments
 (0)