2009-11-18 5 views
1

Je fais grimper le concombre, et j'ai un problème pour réussir un de mes premiers tests. L'exception que je reçois est:Rails | Concombre | acl9 | AccessDenied

And I visit the new contract screen 
    Acl9::AccessDenied (Acl9::AccessDenied) 
    /usr/local/lib/ruby/1.8/benchmark.rb:308:in `realtime' 
    (eval):2:in `visit' 
    ./features/step_definitions/manage_contracts_steps.rb:2:in `/^I visit the (.*) screen$/' 
    features/manage_contracts.feature:15:in `And I visit the new contract screen' 

Voici ma fonction de concombre ...

Background: 
Given the following user records 
| login | password | name | role   | 
| bob | secret | Bob | 'PSCM Staff' | 
| admin | secret | Frank| admin  | 

@new 
Scenario: Create Contract 
When I log in as "bob" with password "secret" 
And I visit the new contract screen 
Then I should see "Contract Name" 

Mon steps.rb:

Given /^the following user records$/ do |table| 
    table.hashes.each do |hash| 
    role = hash.delete('role') 
    u = Factory(:user, hash) 
    u.has_role!(role) if role 
    end 
end 

When /^I visit the (.*) screen$/ do |screen| 
    visit path_to(screen) 
end 

Enfin dans mon controller.rb J'ai la Bloc d'accès_contrôle suivant:

before_filter :load_contract, :except => [:cancel_action,:new,:create] 

    access_control do 
    allow :admin 
    allow logged_in, :to => [:index,:show,:log] 
    allow "PSCM Staff", :to => [:new,:create] 
    allow :editor, :of => :contract 
    end 

Le senario fonctionne bien lorsque je suis les étapes explicitement à partir du navigateur.

Désolé pour le post long, et merci!

Répondre

2

J'ai trouvé le problème. Au cas où cela aiderait quelqu'un d'autre. La question a été compris avec des citations dans les tuyaux dans cette ligne

| bob | secret | Bob | 'PSCM Staff' |

il faut lire

| bob | secret | Bob | PSCM Staff |

Questions connexes