diff options
| author | Robert | 2017-07-07 18:29:38 +0200 | 
|---|---|---|
| committer | Robert | 2017-07-10 09:23:46 +0200 | 
| commit | 7c7451dc80b6f9b6092b3262fe524a8252309b1a (patch) | |
| tree | 75914aa6f8901d13914fdec113c53dc7dedffcc3 /spec/policies | |
| parent | 39fe3258b19ee9c7cd01a7cd5b2344b39cb6ae3d (diff) | |
| download | chouette-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.rb | 97 | 
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 | 
