diff --git a/app/controllers/admin/order_cycles_controller.rb b/app/controllers/admin/order_cycles_controller.rb index 5aacb9e03e..394b189609 100644 --- a/app/controllers/admin/order_cycles_controller.rb +++ b/app/controllers/admin/order_cycles_controller.rb @@ -74,8 +74,7 @@ module Admin @order_cycle = OrderCycle.find params[:id] Delayed::Job.enqueue OrderCycleNotificationJob.new(@order_cycle) - flash[:notice] = 'Emails to be sent to producers have been queued for sending.' - format.html { redirect_to admin_order_cycles_path } + redirect_to main_app.admin_order_cycles_path, :notice => 'Emails to be sent to producers have been queued for sending.' end diff --git a/config/routes.rb b/config/routes.rb index 29c4f35246..b7c2d66b68 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -43,7 +43,7 @@ Openfoodnetwork::Application.routes.draw do post :bulk_update, on: :collection, as: :bulk_update get :clone, on: :member - post 'notifications', on: :member + post 'notify_producers', on: :member end resources :enterprises do diff --git a/spec/controllers/admin/order_cycles_controller_spec.rb b/spec/controllers/admin/order_cycles_controller_spec.rb new file mode 100644 index 0000000000..faa3e095ae --- /dev/null +++ b/spec/controllers/admin/order_cycles_controller_spec.rb @@ -0,0 +1,27 @@ +require 'spec_helper' + +module Admin + describe OrderCyclesController do + include AuthenticationWorkflow + + let(:user) { create_enterprise_user } + let(:admin_user) do + user = create(:user) + user.spree_roles << Spree::Role.find_or_create_by_name!('admin') + user + end + let(:order_cycle) { create(:simple_order_cycle) } + + context 'order cycle has closed' do + it 'can notify producers' do + controller.stub spree_current_user: admin_user + expect(Delayed::Job).to receive(:enqueue).once + spree_post :notify_producers, {id: order_cycle.id} + + # TODO: is there a better variable to use? + expect(response).to redirect_to spree.admin_path + '/order_cycles' + flash[:notice].should == 'Emails to be sent to producers have been queued for sending.' + end + end + end +end diff --git a/spec/jobs/order_cycle_notification_job_spec.rb b/spec/jobs/order_cycle_notification_job_spec.rb index 77fbf0c430..3c90295955 100644 --- a/spec/jobs/order_cycle_notification_job_spec.rb +++ b/spec/jobs/order_cycle_notification_job_spec.rb @@ -6,7 +6,6 @@ describe OrderCycleNotificationJob do it 'sends a mail to each supplier' do mail = double() allow(mail).to receive(:deliver) - mailer = double('ProducerMailer') expect(ProducerMailer).to receive(:order_cycle_report).twice.and_return(mail) job = OrderCycleNotificationJob.new(order_cycle) job.perform