2013-08-14 18 views
7

Wie macht man einen Controller und Feature-Spezifikation für den folgenden ActiveAdmin Code schreiben:Controller und Feature-Spezifikationen für ActiveAdmin mit RSpec schreiben?

# 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 

Hier ist meine Funktion spec ist. Es kann keine Stapelaktionen finden, die ActiveAdmin im Popup-Menü lädt.

# 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 

Versionen

  • Rails 3.2.14
  • ActiveAdmin 0.6.0

Antwort

9

I, wie eine Steuerung spec konstruieren herausgefunden.

# 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 

Wenn jemand weiß, wie man die Feature-Spezifikation schreibt, bitte teilen Sie diese Informationen.