diff --git a/app/controllers/cards/drops_controller.rb b/app/controllers/cards/drops_controller.rb index 9b2e93053..25f7997a8 100644 --- a/app/controllers/cards/drops_controller.rb +++ b/app/controllers/cards/drops_controller.rb @@ -24,9 +24,9 @@ class Cards::DropsController < ApplicationController def perform_drop_action case @drop_target - when :considering + when :considering @card.reconsider - when :doing + when :doing @card.engage end end diff --git a/test/controllers/cards/drops_controller_test.rb b/test/controllers/cards/drops_controller_test.rb new file mode 100644 index 000000000..d0c6104f7 --- /dev/null +++ b/test/controllers/cards/drops_controller_test.rb @@ -0,0 +1,34 @@ +require "test_helper" + +class Cards::DropsControllerTest < ActionDispatch::IntegrationTest + setup do + sign_in_as :kevin + @card = cards(:logo) + end + + test "drop to considering" do + assert_changes -> { @card.reload.considering? }, from: false, to: true do + post cards_drops_path, params: { dropped_item_id: @card.id, drop_target: "considering" }, as: :turbo_stream + assert_column_rerendered("considering") + end + end + + test "drop to doing" do + @card = cards(:text) + + assert_changes -> { @card.reload.doing? }, from: false, to: true do + post cards_drops_path, params: { dropped_item_id: @card.id, drop_target: "doing" }, as: :turbo_stream + assert_column_rerendered("doing") + end + end + + test "invalid drop target" do + post cards_drops_path, params: { dropped_item_id: @card.id, drop_target: "invalid" }, as: :turbo_stream + assert_response :bad_request + end + + private + def assert_column_rerendered(target) + assert_turbo_stream action: :replace, target: "#{target}-cards" + end +end