tap/spec/models/ability_spec.rb

42 lines
1.1 KiB
Ruby
Raw Normal View History

2015-09-04 16:13:58 +00:00
require "cancan/matchers"
describe User do
describe "abilities" do
subject(:ability){ Ability.new(user) }
let(:user) { nil}
describe "as admin" do
let(:user) { create :admin }
it{ should be_able_to(:manage, Product.new) }
it{ should be_able_to(:manage, Order.new) }
it{ should be_able_to(:manage, Stock.new) }
it{ should be_able_to(:manage, User.new) }
end
describe "as normal user" do
let(:user) { create :user }
it{ should be_able_to(:read, Product.new) }
it{ should_not be_able_to(:manage, Product.new) }
it{ should be_able_to(:manage, Order.new(user: user)) }
it{ should_not be_able_to(:manage, Order.new) }
it{ should_not be_able_to(:manage, Stock.new) }
it{ should be_able_to(:manage, user) }
it{ should_not be_able_to(:manage, User.new) }
end
describe "as koelkast" do
let(:user) { create :koelkast }
it{ should_not be_able_to(:manage, Product.new) }
it{ should be_able_to(:manage, Order.new) }
it{ should_not be_able_to(:manage, Stock.new) }
it{ should_not be_able_to(:manage, User.new) }
end
end
end