diff --git a/app/controllers/spree/orders_controller.rb b/app/controllers/spree/orders_controller.rb index f467dbd196..d3297fe130 100644 --- a/app/controllers/spree/orders_controller.rb +++ b/app/controllers/spree/orders_controller.rb @@ -4,6 +4,8 @@ module Spree class OrdersController < ::BaseController include OrderCyclesHelper include Rails.application.routes.url_helpers + include CablecarResponses + layout 'darkswarm' @@ -99,7 +101,8 @@ module Spree else flash[:error] = I18n.t(:orders_could_not_cancel) end - redirect_to request.referer || main_app.order_path(@order) + render status: :found, + operations: cable_car.redirect_to(url: request.referer || main_app.order_path(@order)) end private diff --git a/spec/controllers/spree/orders_controller_spec.rb b/spec/controllers/spree/orders_controller_spec.rb index ef221178c7..2f5722ee93 100644 --- a/spec/controllers/spree/orders_controller_spec.rb +++ b/spec/controllers/spree/orders_controller_spec.rb @@ -457,7 +457,9 @@ describe Spree::OrdersController, type: :controller do context "when the order is not yet complete" do it "responds with forbidden" do spree_put :cancel, params - expect(response.status).to redirect_to order_path(order) + + expect(response).to have_http_status(:found) + expect(response.body).to match(order_path(order)).and match("redirect") expect(flash[:error]).to eq I18n.t(:orders_could_not_cancel) end end @@ -474,7 +476,9 @@ describe Spree::OrdersController, type: :controller do it "responds with success" do spree_put :cancel, params - expect(response.status).to redirect_to order_path(order) + + expect(response).to have_http_status(:found) + expect(response.body).to match(order_path(order)).and match("redirect") expect(flash[:success]).to eq I18n.t(:orders_your_order_has_been_cancelled) end end