Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions app/controllers/admin/orders_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,12 @@
class Admin::OrdersController < Admin::ApplicationController
def close
order = Order.find(params[:id])
order_date = I18n.l(order.date)

# rubocop:disable Style/AndOr
redirect_to todays_order_admin_orders_path, alert: "#{order_date}はすでに締め切り処理が済んでいます" \
and return if order.closed?
# rubocop:enable Style/AndOr

order.close!
message = if order.realized?
Expand Down
23 changes: 23 additions & 0 deletions spec/features/admin/close_order_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,27 @@
expect(page).not_to have_selector('input[type=submit][value="予約を締め切る"]')
end
end

scenario 'すでに注文の締め切り処理が終わっている場合は予約を締め切れない' do
# TODO 今回あったように日付をまたいだケースを作りたい。
order = create(:order, date: 'Mon, 29 May 2017')
Timecop.freeze(order.date) do
create(:order_item, lunchbox_id: lunchbox.id, order: order)
create(:order_item, lunchbox_id: lunchbox.id, order: order)

visit todays_order_admin_orders_path

using_session SecureRandom.uuid do
visit todays_order_admin_orders_path
click_button('予約を締め切る')
end

click_button('予約を締め切る')

expect(page).to have_content '2017/05/29(月)はすでに締め切り処理が済んでいます'
within 'h1' do
expect(page).to have_content '今日(2017/05/29(月))の予約一覧'
end
end
end
end