require 'rails_helper' RSpec.describe ActiveAdmin::Views::Panel do let(:arbo_panel) do render_component do panel "My Title" do header_action link_to("My Link", "https://www.github.com/activeadmin/activeadmin") span("Hello World") end end end let(:panel_html) { Capybara.string(arbo_panel.to_s) } it "should have a title h3" do expect(panel_html).to have_css 'h3', text: "My Title" end it "should add panel actions to the panel header" do link = panel_html.find('h3 > div.header_action a') expect(link.text).to eq('My Link') expect(link[:href]).to eq("https://www.github.com/activeadmin/activeadmin") end it "should have a contents div" do expect(panel_html).to have_css 'div.panel_contents' end it "should add children to the contents div" do expect(panel_html).to have_css 'div.panel_contents > span', text: "Hello World" end context "with html-safe title" do let(:arbo_panel) do title_with_html = %q[Title with HTML].html_safe render_component do panel(title_with_html) end end it "should allow a html_safe title" do expect(panel_html).to have_css "h3", text: "Title with HTML" expect(panel_html).to have_css "h3 > abbr", text: "HTML" end end describe "#children?" do let(:arbo_panel) do render_component do panel("A Panel") end end it "returns false if no children have been added to the panel" do expect(arbo_panel.children?).to eq false end end end