Write a controller and feature specification for ActiveAdmin using RSpec?

How to write a controller and function specification for the following ActiveAdmin code:

# app/admin/organization.rb ActiveAdmin.register Organization do batch_action :approve do |selection| Organization.find(selection).each {|organization| organization.approve } redirect_to collection_path, notice: 'Organizations approved.' end end 

Here is my specification. It cannot find the "batch actions" that ActiveAdmin loads in the pop-up menu.

 # spec/features/admin/organization_feature_spec.rb require 'spec_helper' include Devise::TestHelpers describe 'Admin Organization' do before(:each) do @user = FactoryGirl.create(:admin_user) login(' admin@company.com ', 'password1') end it 'approves in batch' do organization = FactoryGirl.create(:organization) visit admin_organizations_path check 'collection_selection_toggle_all' click_link 'Batch Actions' click_link 'Approve Selected' organization.reload organization.state.should eq 'approved' end end 

Version

  • Rails 3.2.14
  • ActiveAdmin 0.6.0
+7
rspec2 activeadmin
source share
1 answer

I figured out how to build a controller specification.

 # spec/controllers/admin/organizations_controller_spec.rb require 'spec_helper' include Devise::TestHelpers describe Admin::OrganizationsController do render_views before(:each) do @user = FactoryGirl.create(:admin_user) sign_in @user end it 'approve organization' do @organization = FactoryGirl.create(:organization, state: 'pending') post :batch_action, batch_action: 'approve', collection_selection_toggle_all: 'on', collection_selection: [@organization.id] @organization.reload @organization.pending?.should be_false end end 

If someone knows how to write a function specification, please share this information.

+9
source share

All Articles