Files
openfoodnetwork/spec/controllers/base_controller_spec.rb

45 lines
1.4 KiB
Ruby

require 'spec_helper'
describe BaseController do
let(:oc) { mock_model(OrderCycle) }
let(:hub) { mock_model(Enterprise, ready_for_checkout?: true) }
let(:order) { mock_model(Spree::Order, distributor: hub) }
controller(BaseController) do
def index
render text: ""
end
end
it "redirects to home with message if order cycle is expired" do
controller.stub(:current_order_cycle).and_return(oc)
controller.stub(:current_order).and_return(order)
oc.stub(:closed?).and_return(true)
order.should_receive(:empty!)
order.should_receive(:set_order_cycle!).with(nil)
get :index
response.should redirect_to root_url
flash[:info].should == "The order cycle you've selected has just closed. Please try again!"
end
it "redirects to home with message if hub is not ready for checkout" do
hub.stub(:ready_for_checkout?) { false }
controller.stub(:current_order).and_return(order)
order.should_receive(:empty!)
order.should_receive(:set_distribution!).with(nil, nil)
get :index
response.should redirect_to root_url
flash[:info].should == "The hub you have selected is temporarily closed for orders. Please try again later."
end
it "loads active_distributors" do
Enterprise.stub_chain(:distributors_with_active_order_cycles, :ready_for_checkout) { 'active distributors' }
controller.load_active_distributors.should == 'active distributors'
end
end