Sha256: 0d16e83ca112bbd37aa0190bb34817c0bfc311b344c32da3a34877e18a3bff05

Contents?: true

Size: 1.53 KB

Versions: 2

Compression:

Stored size: 1.53 KB

Contents

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 <abbr>HTML</abbr>].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

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
activeadmin-rails-1.7.1 spec/unit/views/components/panel_spec.rb
activeadmin-rails-1.7.0 spec/unit/views/components/panel_spec.rb