52 lines
1.4 KiB
Ruby
52 lines
1.4 KiB
Ruby
|
require File.dirname(__FILE__) + '/../spec_helper'
|
||
|
|
||
|
describe Permission, "to_hash" do
|
||
|
before(:each) do
|
||
|
@permission = Permission.new(:permissible_id => 1, :permissible_type => "User", :action => "some_action", :granted => 1)
|
||
|
end
|
||
|
|
||
|
it "to_hash returns {} if new record" do
|
||
|
@permission.to_hash.should == {}
|
||
|
end
|
||
|
|
||
|
it "to_hash returns {action => granted}" do
|
||
|
@permission.save
|
||
|
@permission.to_hash.should == {"some_action" => true}
|
||
|
end
|
||
|
|
||
|
end
|
||
|
|
||
|
describe Permission, "validations" do
|
||
|
before(:each) do
|
||
|
@permission = Permission.new(:permissible_id => 1, :permissible_type => "User", :action => "some_action", :granted => 1)
|
||
|
end
|
||
|
|
||
|
it "should be valid" do
|
||
|
@permission.should be_valid
|
||
|
end
|
||
|
|
||
|
it "action should be unique to a permissible id and type" do
|
||
|
@permission.save
|
||
|
@permission2 = Permission.new(:permissible_id => 1, :permissible_type => "User", :action => "some_action", :granted => 0)
|
||
|
@permission2.should_not be_valid
|
||
|
end
|
||
|
|
||
|
it "must have a permissible_id" do
|
||
|
@permission.permissible_id = nil
|
||
|
@permission.should_not be_valid
|
||
|
end
|
||
|
|
||
|
it "must have a permissible_type" do
|
||
|
@permission.permissible_type = nil
|
||
|
@permission.should_not be_valid
|
||
|
end
|
||
|
|
||
|
it "must have an action" do
|
||
|
@permission.action = nil
|
||
|
@permission.should_not be_valid
|
||
|
@permission.action = ""
|
||
|
@permission.should_not be_valid
|
||
|
end
|
||
|
|
||
|
end
|