How does one write a controller and feature spec 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 feature spec. It cannot find 'Batch Actions' which 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
Versions
- Rails 3.2.14
- ActiveAdmin 0.6.0
I figured out how to construct a controller spec.
# 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 anyone knows how to write the feature spec, please share that info.
来源:https://stackoverflow.com/questions/18240851/write-controller-and-feature-specs-for-activeadmin-using-rspec