aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'site/spec/models/vote_spec.rb')
-rw-r--r--site/spec/models/vote_spec.rb23
1 files changed, 13 insertions, 10 deletions
diff --git a/site/spec/models/vote_spec.rb b/site/spec/models/vote_spec.rb
index 9936829..aa9f2e8 100644
--- a/site/spec/models/vote_spec.rb
+++ b/site/spec/models/vote_spec.rb
@@ -1,7 +1,16 @@
require 'spec_helper'
describe Vote do
- it 'should not allow anyone to create update or destroy to anyone' do
+ it 'should allow anyone to create, update and destroy their own votes' do
+ for u in users_factory(AllRoles - [:guest]) do
+ vote = Factory(:vote, :user => u)
+ vote.should be_creatable_by(u)
+ vote.should be_updatable_by(u)
+ vote.should be_destroyable_by(u)
+ end
+ end
+
+ it 'should not allow anyone to create, update and destroy vote of someone else' do
vote = Factory(:vote)
for u in users_factory(AllRoles) do
vote.should_not be_creatable_by(u)
@@ -10,25 +19,19 @@ describe Vote do
end
end
- it 'should anyone to view' do
+ it 'should allow anyone to view' do
vote = Factory(:vote)
for u in users_factory(AllRoles) do
vote.should be_viewable_by(u)
end
end
- it 'should allow council members to vote' do
- for u in users_factory(:council, :council_admin) do
+ it 'should allow all users to vote' do
+ for u in users_factory(AllRoles - [:guest]) do
Vote.new(:user => u, :voting_option => Factory(:voting_option)).should be_valid
end
end
- it 'should prevent non-council members from voting' do
- for u in users_factory(:user, :admin) do
- Vote.new(:user => u, :voting_option => Factory(:voting_option)).should_not be_valid
- end
- end
-
it 'should prevent users from voting multiple times' do
v = Factory(:vote)
o = Factory(:voting_option, :agenda_item => v.voting_option.agenda_item, :description => 'other option')