2013-08-14 10 views
7

Come si fa a scrivere la spec controller e funzionalità per il seguente codice ActiveAdmin:Controller di scrittura e specifiche delle funzionalità per ActiveAdmin usando RSpec?

# 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 

Qui è la mia caratteristica spec. Non riesce a trovare "Azioni batch" che ActiveAdmin carica nel menu a comparsa.

# 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 

Versioni

  • Rails 3.2.14
  • ActiveAdmin 0.6.0

risposta

9

ho capito come costruire una specifica di controllo.

# 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 

Se qualcuno sa come scrivere la specifica della funzione, si prega di condividere tali informazioni.