|
9 | 9 | let(:page) { create(:alchemy_page) }
|
10 | 10 | let(:page_version) { create(:alchemy_page_version, page: page) }
|
11 | 11 | let(:element) { create(:alchemy_element, page_version: page_version) }
|
12 |
| - let!(:ingredient) { Alchemy::Ingredients::SpreeProduct.create!(element: element, role: "product", related_object: product) } |
13 | 12 | let(:product) { create(:product) }
|
14 | 13 |
|
15 |
| - it "invalidates the cache on update" do |
16 |
| - travel_to 5.minutes.from_now do |
17 |
| - current_time = Time.current |
18 |
| - expect { product.reload.update!(name: "New name") }.to change { ingredient.reload.updated_at }.to(current_time) |
19 |
| - expect(element.reload.updated_at).to eq(current_time) |
20 |
| - expect(page_version.reload.updated_at).to eq(current_time) |
21 |
| - expect(page.reload.updated_at).to eq(current_time) |
| 14 | + context "if assigned to ingredient spree taxon" do |
| 15 | + let!(:ingredient) { Alchemy::Ingredients::SpreeProduct.create!(element: element, role: "product", related_object: product) } |
| 16 | + |
| 17 | + it "invalidates the cache on update" do |
| 18 | + travel_to 5.minutes.from_now do |
| 19 | + current_time = Time.current |
| 20 | + expect { product.reload.update!(name: "New name") }.to change { ingredient.reload.updated_at }.to(current_time) |
| 21 | + expect(element.reload.updated_at).to eq(current_time) |
| 22 | + expect(page_version.reload.updated_at).to eq(current_time) |
| 23 | + expect(page.reload.updated_at).to eq(current_time) |
| 24 | + end |
| 25 | + end |
| 26 | + |
| 27 | + it "invalidates the cache on touch" do |
| 28 | + travel_to 5.minutes.from_now do |
| 29 | + current_time = Time.current |
| 30 | + expect { product.reload.touch }.to change { ingredient.reload.updated_at }.to(current_time) |
| 31 | + expect(element.reload.updated_at).to eq(current_time) |
| 32 | + expect(page_version.reload.updated_at).to eq(current_time) |
| 33 | + expect(page.reload.updated_at).to eq(current_time) |
| 34 | + end |
22 | 35 | end
|
23 | 36 | end
|
24 | 37 |
|
25 |
| - it "invalidates the cache on touch" do |
26 |
| - travel_to 5.minutes.from_now do |
27 |
| - current_time = Time.current |
28 |
| - expect { product.reload.touch }.to change { ingredient.reload.updated_at }.to(current_time) |
29 |
| - expect(element.reload.updated_at).to eq(current_time) |
30 |
| - expect(page_version.reload.updated_at).to eq(current_time) |
31 |
| - expect(page.reload.updated_at).to eq(current_time) |
| 38 | + context "if assigned to taxon that is assigned to ingredient spree taxon" do |
| 39 | + let(:taxon) { create(:taxon) } |
| 40 | + let(:product) { create(:product, taxons: [taxon]) } |
| 41 | + |
| 42 | + let!(:ingredient) { Alchemy::Ingredients::SpreeTaxon.create!(element: element, role: "taxon", related_object: taxon) } |
| 43 | + |
| 44 | + it "touches ingredient spree taxons elements" do |
| 45 | + expect { product.reload.touch }.to change { element.reload.updated_at } |
32 | 46 | end
|
33 | 47 | end
|
34 | 48 | end
|
|
0 commit comments