diff --git a/spec/controllers/admin/variant_overrides_controller_spec.rb b/spec/controllers/admin/variant_overrides_controller_spec.rb index 022a605a53..2300c38490 100644 --- a/spec/controllers/admin/variant_overrides_controller_spec.rb +++ b/spec/controllers/admin/variant_overrides_controller_spec.rb @@ -16,7 +16,7 @@ describe Admin::VariantOverridesController, type: :controller do before do user = create(:user) user.owned_enterprises << create(:enterprise) - controller.stub spree_current_user: user + allow(controller).to receive(:spree_current_user) { user } end it "redirects to unauthorized" do @@ -27,7 +27,7 @@ describe Admin::VariantOverridesController, type: :controller do context "where I manage the variant override hub" do before do - controller.stub spree_current_user: hub.owner + allow(controller).to receive(:spree_current_user) { hub.owner } end context "but the producer has not granted VO permission" do @@ -63,4 +63,53 @@ describe Admin::VariantOverridesController, type: :controller do end end end + + describe "bulk_reset" do + context "json" do + let(:format) { :json } + + let(:hub) { create(:distributor_enterprise) } + let(:producer) { create(:supplier_enterprise) } + let(:product) { create(:product, supplier: producer) } + let(:variant1) { create(:variant, product: product) } + let(:variant2) { create(:variant, product: product) } + let!(:variant_override1) { create(:variant_override, hub: hub, variant: variant1, count_on_hand: 5, default_stock: 7, resettable: true) } + let!(:variant_override2) { create(:variant_override, hub: hub, variant: variant2, count_on_hand: 2, default_stock: 1, resettable: false) } + + before do + allow(controller).to receive(:spree_current_user) { hub.owner } + end + + context "where the producer has not granted create_variant_overrides permission to the hub" do + let(:params) { { format: format, variant_overrides: [ { id: variant_override1.id } ] } } + + it "restricts access" do + spree_put :bulk_reset, params + expect(response).to redirect_to spree.unauthorized_path + end + end + + context "where the producer has granted create_variant_overrides permission to the hub" do + let!(:er1) { create(:enterprise_relationship, parent: producer, child: hub, permissions_list: [:create_variant_overrides]) } + + context "where reset is enabled" do + let(:params) { { format: format, variant_overrides: [ { id: variant_override1.id } ] } } + + it "updates stock to default values" do + spree_put :bulk_reset, params + expect(variant_override1.reload.count_on_hand).to eq 7 + end + end + + context "where reset is disabled" do + let(:params) { { format: format, variant_overrides: [ { id: variant_override2.id } ] } } + + it "doesn't update on_hand" do + spree_put :bulk_reset, params + expect(variant_override2.reload.count_on_hand).to eq 2 + end + end + end + end + end end diff --git a/spec/controllers/admin/variant_overrides_spec.rb b/spec/controllers/admin/variant_overrides_spec.rb deleted file mode 100644 index 2eb887b961..0000000000 --- a/spec/controllers/admin/variant_overrides_spec.rb +++ /dev/null @@ -1,76 +0,0 @@ -require 'spec_helper' - -module Admin - describe VariantOverridesController, type: :controller do - include AuthenticationWorkflow - let!(:hub_owner) { create :user, enterprise_limit: 2 } - let!(:v1) { create(:variant) } - let!(:v2) { create(:variant) } - let!(:vo1) { create(:variant_override, hub: hub, variant: v1, price: "6.0", count_on_hand: 5, default_stock: 7, resettable: true) } - let!(:vo2) { create(:variant_override, hub: hub, variant: v2, price: "6.0", count_on_hand: 2, default_stock: 1, resettable: false) } - - before do - controller.stub spree_current_user: hub_owner - end - - describe "bulk_update" do - let!(:hub) { create(:distributor_enterprise, owner: hub_owner) } - let(:params) { { variant_overrides: [{id: vo1.id, price: "10.0"}, {id: vo2.id, default_stock: 12 }] } } - - context "where the producer has not granted create_variant_overrides permission to the hub" do - it "restricts access" do - spree_put :bulk_update, params - expect(response).to redirect_to spree.unauthorized_path - end - end - - context "where the producer has granted create_variant_overrides permission to the hub" do - let!(:er1) { create(:enterprise_relationship, parent: v1.product.supplier, child: hub, permissions_list: [:create_variant_overrides]) } - - it "updates the overrides correctly" do - spree_put :bulk_update, params - vo1.reload.price.should eq 10 - vo2.reload.default_stock.should eq 12 - end - end - end - - describe "bulk_reset" do - let!(:hub) { create(:distributor_enterprise, owner: hub_owner) } - - before do - controller.stub spree_current_user: hub.owner - end - - context "where the producer has not granted create_variant_overrides permission to the hub" do - let(:params) { { variant_overrides: [ { id: vo1 } ] } } - - it "restricts access" do - spree_put :bulk_reset, params - expect(response).to redirect_to spree.unauthorized_path - end - end - - context "where the producer has granted create_variant_overrides permission to the hub" do - let!(:er1) { create(:enterprise_relationship, parent: v1.product.supplier, child: hub, permissions_list: [:create_variant_overrides]) } - - context "where reset is enabled" do - let(:params) { { variant_overrides: [ { id: vo1 } ] } } - - it "updates stock to default values" do - spree_put :bulk_reset, params - expect(vo1.reload.count_on_hand).to eq 7 - end - end - - context "where reset is disabled" do - let(:params) { { variant_overrides: [ { id: vo2 } ] } } - it "doesn't update on_hand" do - spree_put :bulk_reset, params - expect(vo2.reload.count_on_hand).to eq 2 - end - end - end - end - end -end