From b5004f1cbf84b05c9dc79c678f724983fcf540c7 Mon Sep 17 00:00:00 2001 From: luisramos0 Date: Fri, 24 Jan 2020 11:05:08 +0000 Subject: [PATCH] Add specs for ExchangeProductsRenderer#exchange_variants --- app/services/exchange_products_renderer.rb | 2 ++ .../exchange_products_renderer_spec.rb | 34 +++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/app/services/exchange_products_renderer.rb b/app/services/exchange_products_renderer.rb index bffb9b8cbd..313016e663 100644 --- a/app/services/exchange_products_renderer.rb +++ b/app/services/exchange_products_renderer.rb @@ -1,3 +1,5 @@ +require 'open_food_network/order_cycle_permissions' + class ExchangeProductsRenderer def initialize(order_cycle, user) @order_cycle = order_cycle diff --git a/spec/services/exchange_products_renderer_spec.rb b/spec/services/exchange_products_renderer_spec.rb index 2af3636e3d..3293d27709 100644 --- a/spec/services/exchange_products_renderer_spec.rb +++ b/spec/services/exchange_products_renderer_spec.rb @@ -26,4 +26,38 @@ describe ExchangeProductsRenderer do end end end + + describe "#exchange_variants" do + describe "for an incoming exchange" do + it "loads variants" do + exchange = order_cycle.exchanges.incoming.first + variants = renderer.exchange_variants(true, exchange.sender) + + expect(variants.first.product.supplier.name).to eq exchange.variants.first.product.supplier.name + end + + describe "when OC is showing only the coordinators inventory" do + let(:exchange_with_visible_variant) { order_cycle.exchanges.incoming.second } + let(:exchange_with_hidden_variant) { order_cycle.exchanges.incoming.first } + let!(:visible_inventory_item) { create(:inventory_item, enterprise: order_cycle.coordinator, variant: exchange_with_visible_variant.variants.first, visible: true) } + let!(:hidden_inventory_item) { create(:inventory_item, enterprise: order_cycle.coordinator, variant: exchange_with_hidden_variant.variants.first, visible: false) } + + before do + order_cycle.prefers_product_selection_from_coordinator_inventory_only = true + end + + it "renders visible inventory variants" do + variants = renderer.exchange_variants(true, exchange_with_visible_variant.sender) + + expect(variants.size).to eq 1 + end + + it "does not render hidden inventory variants" do + variants = renderer.exchange_variants(true, exchange_with_hidden_variant.sender) + + expect(variants.size).to eq 0 + end + end + end + end end