Skip to content

Instantly share code, notes, and snippets.

@enricostano
Last active January 2, 2016 07:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 3 You must be signed in to fork a gist
  • Save enricostano/8268768 to your computer and use it in GitHub Desktop.
Save enricostano/8268768 to your computer and use it in GitHub Desktop.
factory :user do
name "Jessie Pinkman"
email
password "secret"
password_confirmation "secret"
factory :group_admin, parent: :user do
ignore do
group = nil
end
after(:create) { |user, evaluator| user.add_role :admin, evaluator.group }
end
end
require 'spec_helper'
describe GroupPolicy do
subject { GroupPolicy.new(user, group) }
let(:group) { FactoryGirl.create :group }
context 'A visitor' do
let(:user) { FactoryGirl.create :user }
it { should permit :create }
it { should_not permit :show }
it { should_not permit :update }
it { should_not permit :destroy }
end
context 'A group admin' do
let(:user) do
FactoryGirl.create :group_admin, group: group
end
it { should permit :create }
it { should permit :show }
it { should permit :update }
it { should permit :destroy }
end
end
@enricostano
Copy link
Author

  3) GroupPolicy A group admin 
     Failure/Error: FactoryGirl.create :group_admin, group: group
     NoMethodError:
       undefined method `group=' for #<User:0x0000000498b4e0>
     # ./spec/policies/group_policy_spec.rb:19:in `block (3 levels) in <top (required)>'
     # ./spec/policies/group_policy_spec.rb:4:in `block (2 levels) in <top (required)>'
     # ./spec/policies/group_policy_spec.rb:25:in `block (3 levels) in <top (required)>'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment