Files
openfoodnetwork/spec/helpers/spree/orders_helper_spec.rb

52 lines
1.9 KiB
Ruby

require 'spec_helper'
describe Spree::OrdersHelper, type: :helper do
describe "#changeable_orders" do
let(:complete_orders) { double(:complete_orders, where: "some_orders") }
before do
allow(Spree::Order).to receive(:complete) { complete_orders }
allow(helper).to receive(:spree_current_user) { spree_current_user }
allow(helper).to receive(:current_distributor) { current_distributor }
allow(helper).to receive(:current_order_cycle) { current_order_cycle }
end
context "when a current_user is defined" do
let(:spree_current_user) { double(:spree_current_user, id: 1) }
context "when a current_distributor is defined" do
let(:current_distributor) { double(:current_distributor, id: 1) }
context "when a current_order_cycle is defined" do
let(:current_order_cycle) { double(:current_order_cycle, id: 1) }
context "when the current_distributor allows order changes" do
before { allow(current_distributor).to receive(:allow_order_changes?) { true } }
it { expect(helper.changeable_orders).to eq "some_orders" }
end
context "when the current_distributor does not allow order changes" do
before { allow(current_distributor).to receive(:allow_order_changes?) { false } }
it { expect(helper.changeable_orders).to eq [] }
end
end
context "when a current_order_cycle is not defined" do
let(:current_order_cycle) { nil }
it { expect(helper.changeable_orders).to eq [] }
end
end
context "when a current_distributor is not defined" do
let(:current_distributor) { nil }
it { expect(helper.changeable_orders).to eq [] }
end
end
context "when spree_current_user is not defined" do
let(:spree_current_user) { nil }
it { expect(helper.changeable_orders).to eq [] }
end
end
end