diff --git a/backend/app/controllers/spree/admin/prices_controller.rb b/backend/app/controllers/spree/admin/prices_controller.rb index 496d404ffa3..8bcd204973d 100644 --- a/backend/app/controllers/spree/admin/prices_controller.rb +++ b/backend/app/controllers/spree/admin/prices_controller.rb @@ -8,7 +8,7 @@ class PricesController < ResourceController def index params[:q] ||= {} - @search = @product.prices.accessible_by(current_ability, :index).ransack(params[:q]) + @search = @product.prices.kept.accessible_by(current_ability, :index).ransack(params[:q]) @master_prices = @search.result .currently_valid .for_master diff --git a/backend/spec/controllers/spree/admin/prices_controller_spec.rb b/backend/spec/controllers/spree/admin/prices_controller_spec.rb index 21471b0143b..0e86a0187e2 100644 --- a/backend/spec/controllers/spree/admin/prices_controller_spec.rb +++ b/backend/spec/controllers/spree/admin/prices_controller_spec.rb @@ -11,6 +11,8 @@ context "when only given a product" do let(:product) { create(:product) } + let!(:deleted_master_price) { create(:price, variant: product.master).tap(&:discard!) } + subject { get :index, params: { product_id: product.slug } } it { is_expected.to be_successful } @@ -18,8 +20,9 @@ it 'assigns usable instance variables' do subject expect(assigns(:search)).to be_a(Ransack::Search) - expect(assigns(:variant_prices)).to eq(product.prices.for_variant) - expect(assigns(:master_prices)).to eq(product.prices.for_master) + expect(assigns(:variant_prices)).to be_empty + expect(assigns(:master_prices)).to eq(product.prices.kept.for_master) + expect(assigns(:master_prices)).to_not include(deleted_master_price) expect(assigns(:product)).to eq(product) end end @@ -28,6 +31,8 @@ let(:variant) { create(:variant) } let(:product) { variant.product } + let!(:deleted_variant_price) { create(:price, variant: variant).tap(&:discard!) } + subject { get :index, params: { product_id: product.slug, variant_id: variant.id } } it { is_expected.to be_successful } @@ -35,9 +40,10 @@ it 'assigns usable instance variables' do subject expect(assigns(:search)).to be_a(Ransack::Search) - expect(assigns(:variant_prices)).to eq(product.prices.for_variant) + expect(assigns(:variant_prices)).to eq(product.prices.kept.for_variant) expect(assigns(:master_prices)).to eq(product.prices.for_master) expect(assigns(:variant_prices)).to include(variant.default_price) + expect(assigns(:variant_prices)).to_not include(deleted_variant_price) expect(assigns(:product)).to eq(product) end end