Skip to content

Commit

Permalink
render_elements from draft version in preview mode
Browse files Browse the repository at this point in the history
Always use the draft version of the page set or passed into
render_elements if we are in preview_mode.
  • Loading branch information
tvdeyen committed Feb 22, 2021
1 parent bb86d05 commit 3e10e16
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 15 deletions.
8 changes: 7 additions & 1 deletion app/helpers/alchemy/elements_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,13 @@ def render_elements(options = {})
}.update(options)

finder = options[:finder] || Alchemy::ElementsFinder.new(options)
page_version = @page_version || options[:from_page]&.public_version

page_version = if @preview_mode
options[:from_page]&.draft_version
else
options[:from_page]&.public_version
end

elements = finder.elements(page_version: page_version)

buff = []
Expand Down
38 changes: 24 additions & 14 deletions spec/helpers/alchemy/elements_helper_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,18 @@ module Alchemy
is_expected.to have_selector("##{element.name}_#{element.id}")
is_expected.to have_selector("##{another_element.name}_#{another_element.id}")
end

context "in preview_mode" do
let!(:draft_element) { create(:alchemy_element, name: "headline", page_version: page.draft_version) }

before do
assign(:preview_mode, true)
end

it "page draft version is used" do
is_expected.to have_selector("##{draft_element.name}_#{draft_element.id}")
end
end
end

context "with from_page option" do
Expand All @@ -95,6 +107,18 @@ module Alchemy
is_expected.to have_selector("##{element.name}_#{element.id}")
is_expected.to have_selector("##{another_element.name}_#{another_element.id}")
end

context "in preview_mode" do
let!(:draft_element) { create(:alchemy_element, name: "headline", page_version: another_page.draft_version) }

before do
assign(:preview_mode, true)
end

it "page draft version is used" do
is_expected.to have_selector("##{draft_element.name}_#{draft_element.id}")
end
end
end

context "if from_page is nil" do
Expand Down Expand Up @@ -123,20 +147,6 @@ module Alchemy
is_expected.to have_selector("#news_1001")
end
end

context "with page_version assigned" do
let(:options) { {} }
let(:page_version) { create(:alchemy_page_version, :with_elements) }

before do
assign(:page, page)
assign(:page_version, page_version)
end

it "this page version is used" do
expect(subject).to have_selector(".article")
end
end
end

describe "#element_preview_code_attributes" do
Expand Down

0 comments on commit 3e10e16

Please sign in to comment.