Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Write controller and feature specs for ActiveAdmin using RSpec?

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('[email protected]', '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
like image 743
scarver2 Avatar asked Aug 14 '13 19:08

scarver2


1 Answers

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.

like image 153
scarver2 Avatar answered Sep 28 '22 00:09

scarver2