aboutsummaryrefslogtreecommitdiffstats
path: root/spec/policies
diff options
context:
space:
mode:
authorRobert2017-07-07 18:29:38 +0200
committerRobert2017-07-10 09:23:46 +0200
commit7c7451dc80b6f9b6092b3262fe524a8252309b1a (patch)
tree75914aa6f8901d13914fdec113c53dc7dedffcc3 /spec/policies
parent39fe3258b19ee9c7cd01a7cd5b2344b39cb6ae3d (diff)
downloadchouette-core-7c7451dc80b6f9b6092b3262fe524a8252309b1a.tar.bz2
Fixes: #3478@2.5h
- Decorator Spec Setup `spec/support/decortor_helpers.rb` - Speced - Fixed
Diffstat (limited to 'spec/policies')
-rw-r--r--spec/policies/referential_policy_spec.rb97
1 files changed, 78 insertions, 19 deletions
diff --git a/spec/policies/referential_policy_spec.rb b/spec/policies/referential_policy_spec.rb
index d060317f9..33d8e13e8 100644
--- a/spec/policies/referential_policy_spec.rb
+++ b/spec/policies/referential_policy_spec.rb
@@ -56,22 +56,52 @@ RSpec.describe ReferentialPolicy, type: :policy do
add_permissions('referentials.update', for_user: user)
end
- it 'allowed for unarchived referentials' do
- expect_it.to permit(user_context, record)
+ context 'same organisation →' do
+ before do
+ user.organisation_id = referential.organisation_id
+ end
+ it "allows a user with the same organisation" do
+ expect_it.to permit(user_context, record)
+ end
+ describe "archived" do
+ let( :record ){ build_stubbed :referential, archived_at: 2.minutes.ago }
+ it 'does remove permission for archived referentials' do
+ expect_it.not_to permit(user_context, record)
+ end
+ end
end
- it 'forbidden for archived referentials' do
- record.archived_at = 1.second.ago
- expect_it.not_to permit(user_context, record)
+ context 'different organisations →' do
+ it "forbids a user with a different organisation" do
+ expect_it.not_to permit(user_context, record)
+ end
+
+ describe "archived" do
+ let( :record ){ build_stubbed :referential, archived_at: 2.minutes.ago }
+ it 'forbids for archived referentials' do
+ expect_it.not_to permit(user_context, record)
+ end
+ end
+
end
end
- context 'permission absent →' do
- it 'is forbidden' do
- expect_it.not_to permit(user_context, record)
+ context 'permission absent →' do
+ context 'same organisation →' do
+ before do
+ user.organisation_id = referential.organisation_id
+ end
+ it "forbids a user with the same organisation" do
+ expect_it.not_to permit(user_context, record)
+ end
+ describe "archived" do
+ let( :record ){ build_stubbed :referential, archived_at: 2.minutes.ago }
+ it 'forbids for archived referentials' do
+ expect_it.not_to permit(user_context, record)
+ end
+ end
end
end
-
end
permissions :unarchive? do
@@ -81,22 +111,51 @@ RSpec.describe ReferentialPolicy, type: :policy do
add_permissions('referentials.update', for_user: user)
end
- it 'forbidden for unarchived referentials' do
- expect_it.not_to permit(user_context, record)
+ context 'same organisation →' do
+ before do
+ user.organisation_id = referential.organisation_id
+ end
+ it "forbids a user with the same organisation" do
+ expect_it.not_to permit(user_context, record)
+ end
+ describe "archived" do
+ let( :record ){ build_stubbed :referential, archived_at: 2.minutes.ago }
+ it 'adds permission for archived referentials' do
+ expect_it.to permit(user_context, record)
+ end
+ end
end
- it 'allowed for archived referentials' do
- record.archived_at = 1.second.ago
- expect_it.to permit(user_context, record)
+ context 'different organisations →' do
+ it "forbids a user with a different organisation" do
+ expect_it.not_to permit(user_context, record)
+ end
+
+ describe "archived" do
+ let( :record ){ build_stubbed :referential, archived_at: 2.minutes.ago }
+ it 'still forbids for archived referentials' do
+ expect_it.not_to permit(user_context, record)
+ end
+ end
+
end
end
- context 'permission absent →' do
- it 'is forbidden' do
- record.archived_at = 1.second.ago
- expect_it.not_to permit(user_context, record)
+ context 'permission absent →' do
+ context 'same organisation →' do
+ before do
+ user.organisation_id = referential.organisation_id
+ end
+ it "forbids a user with a different rganisation" do
+ expect_it.not_to permit(user_context, record)
+ end
+ describe "archived" do
+ let( :record ){ build_stubbed :referential, archived_at: 2.minutes.ago }
+ it 'still forbids for archived referentials' do
+ expect_it.not_to permit(user_context, record)
+ end
+ end
end
end
-
end
end