From 1ea4f4274c5daa7d663c26cf25ee2392c8f548b9 Mon Sep 17 00:00:00 2001 From: Rohan Mitchell Date: Fri, 28 Oct 2016 16:33:27 +1100 Subject: [PATCH] Add enterprise cache invalidation for order cycle changes --- app/models/exchange.rb | 2 +- spec/models/enterprise_caching_spec.rb | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/models/exchange.rb b/app/models/exchange.rb index ce152da6d6..f60c7289b6 100644 --- a/app/models/exchange.rb +++ b/app/models/exchange.rb @@ -3,7 +3,7 @@ class Exchange < ActiveRecord::Base belongs_to :order_cycle belongs_to :sender, class_name: 'Enterprise' - belongs_to :receiver, class_name: 'Enterprise' + belongs_to :receiver, class_name: 'Enterprise', touch: true belongs_to :payment_enterprise, class_name: 'Enterprise' has_many :exchange_variants, dependent: :destroy diff --git a/spec/models/enterprise_caching_spec.rb b/spec/models/enterprise_caching_spec.rb index 58317ca2df..5eceba9160 100644 --- a/spec/models/enterprise_caching_spec.rb +++ b/spec/models/enterprise_caching_spec.rb @@ -17,12 +17,17 @@ describe Enterprise do describe "with a distributed product" do let(:product) { create(:simple_product) } - let!(:oc) { create(:simple_order_cycle, distributors: [enterprise], variants: [product.master]) } + let(:oc) { create(:simple_order_cycle, distributors: [enterprise], variants: [product.variants.first]) } let!(:classification) { create(:classification, taxon: taxon, product: product) } it "touches enterprise when a classification on that product changes" do + oc expect { classification.save! }.to change { enterprise.reload.updated_at } end + + it "touches enterprise when the product's variant is added to order cycle" do + expect { oc }.to change { enterprise.reload.updated_at } + end end describe "with relatives" do