|
74 | 74 | context "with publishable_only option" do |
75 | 75 | let(:element) { create(:alchemy_element) } |
76 | 76 |
|
77 | | - let!(:visible_nested) do |
78 | | - create(:alchemy_element, parent_element: element, page_version: element.page_version, public: true) |
| 77 | + let!(:current_nested) do |
| 78 | + create(:alchemy_element, parent_element: element, page_version: element.page_version, public_on: 1.day.ago) |
79 | 79 | end |
80 | 80 |
|
81 | | - let!(:hidden_nested) do |
82 | | - create(:alchemy_element, parent_element: element, page_version: element.page_version, public: false) |
| 81 | + let!(:future_nested) do |
| 82 | + create(:alchemy_element, parent_element: element, page_version: element.page_version, public_on: 1.day.from_now) |
| 83 | + end |
| 84 | + |
| 85 | + let!(:draft_nested) do |
| 86 | + create(:alchemy_element, parent_element: element, page_version: element.page_version, public_on: nil) |
| 87 | + end |
| 88 | + |
| 89 | + let!(:expired_nested) do |
| 90 | + create(:alchemy_element, parent_element: element, page_version: element.page_version, public_on: 2.days.ago, public_until: 1.day.ago) |
83 | 91 | end |
84 | 92 |
|
85 | 93 | subject do |
86 | 94 | described_class.new(element, publishable_only: true).call(differences) |
87 | 95 | end |
88 | 96 |
|
89 | | - it "only copies visible nested elements" do |
90 | | - expect(subject.all_nested_elements).to all(be_public) |
| 97 | + it "only copies publishable nested elements" do |
| 98 | + expect(subject.all_nested_elements.count).to eq(2) |
| 99 | + end |
| 100 | + |
| 101 | + it "does not copy draft nested elements" do |
| 102 | + public_ons = subject.all_nested_elements.map(&:public_on) |
| 103 | + expect(public_ons).to all(be_present) |
| 104 | + end |
| 105 | + |
| 106 | + it "does not copy expired nested elements" do |
| 107 | + public_untils = subject.all_nested_elements.map(&:public_until) |
| 108 | + expect(public_untils).to all(be_nil) |
91 | 109 | end |
92 | 110 | end |
93 | 111 | end |
|
0 commit comments