Skip to content

Commit

Permalink
Merge pull request #396 from RailsEventStore/fix-time-promotion-bug
Browse files Browse the repository at this point in the history
Fix time promotions bug
  • Loading branch information
marlena-b authored Sep 18, 2024
2 parents a42c949 + 85466a6 commit 1b9b763
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 2 deletions.
3 changes: 1 addition & 2 deletions ecommerce/pricing/lib/pricing/promotions_calendar.rb
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,8 @@ def initialize(start_time, end_time, discount)
end

def running?(timestamp)
(@start_time...@end_time).include?(timestamp)
(@start_time...@end_time).cover?(timestamp)
end

end
end
end
24 changes: 24 additions & 0 deletions rails_application/test/integration/client_orders_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,21 @@ def test_shows_out_of_stock_badge
assert_select "td span", "out of stock"
end

def test_current_time_promotion_is_applied
customer_id = register_customer("Customer Shop")
product_id = register_product("Fearless Refactoring", 4, 10)
create_current_time_promotion

login(customer_id)
visit_client_orders

order_id = SecureRandom.uuid
as_client_add_item_to_basket_for_order(product_id, order_id)
as_client_submit_order_for_customer(order_id)

assert_select "tr td", "$2.00"
end

private

def submit_order_for_customer(customer_id, order_id)
Expand Down Expand Up @@ -248,4 +263,13 @@ def update_price(product_id, new_price)
def login_as(client_id)
open_session { |sess| sess.post "/login", params: { client_id: client_id } }
end

def create_current_time_promotion(discount: 50, start_time: Time.current - 1.day, end_time: Time.current + 1.day)
post "/time_promotions", params: {
label: "Last Minute",
discount: discount,
start_time: start_time,
end_time: end_time
}
end
end
30 changes: 30 additions & 0 deletions rails_application/test/integration/orders_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,27 @@ def test_shows_out_of_stock_badge
assert_select "td span", "0"
end

def test_current_time_promotion_is_applied
order_id = SecureRandom.uuid
async_remote_id = register_product("Async Remote", 39, 10)
shopify_id = register_customer("Shopify")

create_current_time_promotion
post "/orders/#{order_id}/add_item?product_id=#{async_remote_id}"

post "/orders",
params: {
"authenticity_token" => "[FILTERED]",
"order_id" => order_id,
"customer_id" => shopify_id,
"commit" => "Submit order"
}
follow_redirect!

assert_select("td", "$19.50")
assert_select("dd", "Submitted")
end

private

def assert_remove_buttons_visible(async_remote_id, fearless_id, order_id)
Expand Down Expand Up @@ -356,4 +377,13 @@ def apply_discount_10_percent(order_id)

post "/orders/#{order_id}/update_discount?amount=10"
end

def create_current_time_promotion(discount: 50, start_time: Time.current - 1.day, end_time: Time.current + 1.day)
post "/time_promotions", params: {
label: "Last Minute",
discount: discount,
start_time: start_time,
end_time: end_time
}
end
end

0 comments on commit 1b9b763

Please sign in to comment.