Skip to content

Commit f2730fb

Browse files
committed
Fix creating a fixed element
We need the tab to exist before appending the element.
1 parent 2f909ee commit f2730fb

File tree

2 files changed

+36
-10
lines changed

2 files changed

+36
-10
lines changed

app/views/alchemy/admin/elements/create.turbo_stream.erb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
<% if @element.fixed? %>
22
<% target = "fixed_element_#{@element.id}" %>
3+
<%= turbo_stream.append "fixed-elements",
4+
partial: "alchemy/admin/elements/fixed_element",
5+
locals: {element: @element} %>
36
<% elsif @element.parent_element %>
47
<% target = "element_#{@element.parent_element_id}_nested_elements" %>
58
<% else %>

spec/features/admin/page_editing_feature_spec.rb

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -59,17 +59,40 @@
5959
end
6060
end
6161

62-
it "can create a new element", :js do
63-
visit alchemy.edit_admin_page_path(a_page)
64-
expect(page).to have_link_with_tooltip("New element")
65-
click_link_with_tooltip("New element")
66-
expect(page).to have_selector(".alchemy-dialog-body .simple_form")
67-
within ".alchemy-dialog-body .simple_form" do
68-
select2("Article", from: "Element")
69-
click_button("Add")
62+
describe "creating a new element", :js do
63+
before do
64+
visit alchemy.edit_admin_page_path(a_page)
65+
expect(page).to have_link_with_tooltip("New element")
66+
click_link_with_tooltip("New element")
67+
expect(page).to have_selector(".alchemy-dialog-body .simple_form")
68+
end
69+
70+
context "on a page having article elements defined" do
71+
let(:a_page) { create(:alchemy_page, page_layout: "standard") }
72+
73+
scenario "can create a new article element" do
74+
within ".alchemy-dialog-body .simple_form" do
75+
select2("Article", from: "Element")
76+
click_button("Add")
77+
end
78+
expect(page).to_not have_selector(".alchemy-dialog-body")
79+
expect(page).to have_selector('.element-editor[data-element-name="article"]')
80+
end
81+
end
82+
83+
context "on a page having fixed elements defined" do
84+
let(:a_page) { create(:alchemy_page, page_layout: "everything") }
85+
86+
scenario "can create a new fixed element" do
87+
within ".alchemy-dialog-body" do
88+
select2("Left column", from: "Element")
89+
click_button("Add")
90+
end
91+
92+
expect(page).to_not have_selector(".alchemy-dialog-body")
93+
expect(page).to have_selector('sl-tab-panel .element-editor.is-fixed[data-element-name="left_column"]')
94+
end
7095
end
71-
expect(page).to_not have_selector(".alchemy-dialog-body")
72-
expect(page).to have_selector('.element-editor[data-element-name="article"]')
7396
end
7497
end
7598

0 commit comments

Comments
 (0)