From ef298e3b62fddbee2b42e093329ad12f1d82eeeb Mon Sep 17 00:00:00 2001 From: Gaetan Craig-Riou Date: Tue, 5 Mar 2024 10:43:44 +1100 Subject: [PATCH] Fix taxon --- app/models/spree/taxon.rb | 2 +- spec/models/spree/taxon_spec.rb | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/models/spree/taxon.rb b/app/models/spree/taxon.rb index 0ccb9e6499..827551b4d7 100644 --- a/app/models/spree/taxon.rb +++ b/app/models/spree/taxon.rb @@ -57,7 +57,7 @@ module Spree taxons = {} Spree::Taxon. - joins(products: :supplier). + joins(products: { variants: :supplier }). select('spree_taxons.*, enterprises.id AS enterprise_id'). each do |t| taxons[t.enterprise_id.to_i] ||= Set.new diff --git a/spec/models/spree/taxon_spec.rb b/spec/models/spree/taxon_spec.rb index 34bdda4395..282320c206 100644 --- a/spec/models/spree/taxon_spec.rb +++ b/spec/models/spree/taxon_spec.rb @@ -11,7 +11,9 @@ module Spree let(:t2) { create(:taxon) } describe "finding all supplied taxons" do - let!(:p1) { create(:simple_product, supplier: e, primary_taxon_id: t1.id) } + let!(:p1) { + create(:simple_product, primary_taxon_id: t1.id, supplier_id: e.id) + } it "finds taxons" do expect(Taxon.supplied_taxons).to eq(e.id => Set.new([t1.id])) @@ -40,9 +42,10 @@ module Spree describe "touches" do let!(:taxon1) { create(:taxon) } let!(:taxon2) { create(:taxon) } - let!(:product) { create(:simple_product, primary_taxon: taxon1) } + let!(:product) { create(:simple_product, primary_taxon_id: taxon1.id) } let(:variant) { product.variants.first } + it "is touched when assignment of primary_taxon on a variant changes" do expect do variant.update(primary_taxon: taxon2)