diff --git a/app/decorators/staff/proposal_decorator.rb b/app/decorators/staff/proposal_decorator.rb index ac7c5694b..454366cfb 100644 --- a/app/decorators/staff/proposal_decorator.rb +++ b/app/decorators/staff/proposal_decorator.rb @@ -92,7 +92,7 @@ def state_button(text, path, opts = {}) def finalize_state_button state_button('Finalize State', - h.event_staff_program_proposal_finalize_path(object.event, object), + h.finalize_event_staff_program_proposal_path(object.event, object), data: { turbo_confirm: 'Finalizing the state will prevent any additional state changes, and emails will be sent to all speakers. Are you sure you want to continue?' @@ -120,7 +120,7 @@ def hard_reset_button end def update_state_path(state) - h.event_staff_program_proposal_update_state_path(object.event, object, new_state: state) + h.update_state_event_staff_program_proposal_path(object.event, object, new_state: state) end def buttons diff --git a/config/routes.rb b/config/routes.rb index ccbd79ff0..a08b35378 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -64,8 +64,10 @@ get 'bulk_finalize' post 'finalize_by_state' end - post :finalize - post :update_state + member do + post :finalize + post :update_state + end end resources :speakers, only: [:index, :show, :edit, :update, :destroy] diff --git a/spec/controllers/staff/proposals_controller_spec.rb b/spec/controllers/staff/proposals_controller_spec.rb index 24d18aad8..152ff9624 100644 --- a/spec/controllers/staff/proposals_controller_spec.rb +++ b/spec/controllers/staff/proposals_controller_spec.rb @@ -53,26 +53,26 @@ describe "POST 'update_state'" do it "returns http redirect" do - post :update_state, params: {event_slug: event, proposal_uuid: proposal.uuid} + post :update_state, params: {event_slug: event, uuid: proposal.uuid} expect(response).to redirect_to(event_staff_program_proposals_path(event)) end end describe "POST 'finalize'" do it "returns http redirect" do - post :finalize, params: {event_slug: event, proposal_uuid: proposal.uuid} + post :finalize, params: {event_slug: event, uuid: proposal.uuid} expect(response).to redirect_to(event_staff_program_proposal_path(event, proposal)) end it "finalizes the state" do proposal = create(:proposal_with_track, event: event, state: :soft_accepted) - post :finalize, params: {event_slug: event, proposal_uuid: proposal.uuid} + post :finalize, params: {event_slug: event, uuid: proposal.uuid} expect(proposal.reload).to be_accepted end it "creates a draft program session" do proposal = create(:proposal_with_track, event: event, state: :soft_accepted) - post :finalize, params: {event_slug: event, proposal_uuid: proposal.uuid} + post :finalize, params: {event_slug: event, uuid: proposal.uuid} expect(proposal.program_session).to be_unconfirmed_accepted end @@ -80,13 +80,13 @@ proposal = create(:proposal_with_track, event: event, state: :soft_accepted) mail = double(:mail, deliver_now: nil) expect(Staff::ProposalMailer).to receive('send_email').and_return(mail) - post :finalize, params: {event_slug: event, proposal_uuid: proposal.uuid} + post :finalize, params: {event_slug: event, uuid: proposal.uuid} end it "creates a notification" do proposal = create(:proposal_with_track, :with_two_speakers, event: event, state: :soft_accepted) expect { - post :finalize, params: {event_slug: event, proposal_uuid: proposal.uuid} + post :finalize, params: {event_slug: event, uuid: proposal.uuid} }.to change { Notification.count }.by(2)