diff --git a/lib/active_admin/views/pages/show.rb b/lib/active_admin/views/pages/show.rb index 8f2c19d2a1f..b0f4ecb6ca9 100644 --- a/lib/active_admin/views/pages/show.rb +++ b/lib/active_admin/views/pages/show.rb @@ -43,8 +43,8 @@ def default_title end module DefaultMainContent - def default_main_content - attributes_table *default_attribute_table_rows + def default_main_content(&block) + attributes_table(*default_attribute_table_rows, &block) end def default_attribute_table_rows diff --git a/spec/unit/views/pages/show_spec.rb b/spec/unit/views/pages/show_spec.rb index 07d83915b58..a55ba118eb7 100644 --- a/spec/unit/views/pages/show_spec.rb +++ b/spec/unit/views/pages/show_spec.rb @@ -5,16 +5,29 @@ describe "the resource" do let(:helpers) { double resource: resource } let(:arbre_context) { Arbre::Context.new({}, helpers) } + subject(:page) { ActiveAdmin::Views::Pages::Show.new(arbre_context) } context 'when the resource does not respond to #decorator' do let(:resource) { 'Test Resource' } it "normally returns the resource" do - page = ActiveAdmin::Views::Pages::Show.new(arbre_context) expect(page.resource).to eq 'Test Resource' end end + context 'when you pass a block to main content' do + let(:block) { lambda { } } + let(:resource_class) { double(columns: [double('column', name: 'field')]) } + let(:resource) { double('resource', class: resource_class) } + + before { allow(page).to receive(:active_admin_config).and_return(double(comments?: false))} + + it 'appends it to the output' do + expect(page).to receive(:attributes_table).with(:field).and_yield + page.default_main_content(&block) + end + end + end end