Merge pull request #3218 from coopdevs/handle-soft-deleted-products-in-serializer-spec

Handle soft deleted products in serializer spec
This commit is contained in:
Pau Pérez Fabregat
2018-12-18 08:59:36 +01:00
committed by GitHub
2 changed files with 27 additions and 15 deletions

View File

@@ -1,13 +1,14 @@
Spree::Classification.class_eval do
belongs_to :product, :class_name => "Spree::Product", touch: true
after_save :refresh_products_cache
belongs_to :product, class_name: "Spree::Product", touch: true
before_destroy :dont_destroy_if_primary_taxon
after_destroy :refresh_products_cache
after_save :refresh_products_cache
private
def refresh_products_cache
product = Spree::Product.with_deleted.find(product_id) unless product.present?
product.refresh_products_cache
end

View File

@@ -1,16 +1,27 @@
describe Api::Admin::ForOrderCycle::EnterpriseSerializer do
let(:coordinator) { create(:distributor_enterprise) }
let(:order_cycle) { double(:order_cycle, coordinator: coordinator) }
let(:enterprise) { create(:distributor_enterprise) }
let!(:non_inventory_product) { create(:simple_product, supplier: enterprise) }
let!(:non_inventory_variant) { non_inventory_product.variants.first }
let!(:inventory_product) { create(:simple_product, supplier: enterprise) }
let!(:inventory_variant) { inventory_product.variants.first }
let!(:deleted_product) { create(:simple_product, supplier: enterprise, deleted_at: 24.hours.ago ) }
let!(:deleted_variant) { deleted_product.variants.first }
let(:serialized_enterprise) { Api::Admin::ForOrderCycle::EnterpriseSerializer.new(enterprise, order_cycle: order_cycle, spree_current_user: enterprise.owner ).to_json }
let!(:inventory_item1) { create(:inventory_item, enterprise: coordinator, variant: inventory_variant, visible: true)}
let!(:inventory_item2) { create(:inventory_item, enterprise: coordinator, variant: deleted_variant, visible: true)}
let(:coordinator) { create(:distributor_enterprise) }
let(:order_cycle) { double(:order_cycle, coordinator: coordinator) }
let(:enterprise) { create(:distributor_enterprise) }
let(:non_inventory_product) { create(:simple_product, supplier: enterprise) }
let!(:non_inventory_variant) { non_inventory_product.variants.first }
let(:inventory_product) { create(:simple_product, supplier: enterprise) }
let(:inventory_variant) { inventory_product.variants.first }
let(:deleted_product) { create(:product, supplier: enterprise, deleted_at: 24.hours.ago ) }
let(:deleted_variant) { deleted_product.variants.first }
let(:serialized_enterprise) do
Api::Admin::ForOrderCycle::EnterpriseSerializer.new(
enterprise,
order_cycle: order_cycle,
spree_current_user: enterprise.owner
).to_json
end
let!(:inventory_item1) { create(:inventory_item, enterprise: coordinator, variant: inventory_variant, visible: true) }
let!(:inventory_item2) { create(:inventory_item, enterprise: coordinator, variant: deleted_variant, visible: true) }
context "when order cycle shows only variants in the coordinator's inventory" do
before do