diff options
| author | Zog | 2018-04-27 15:07:25 +0200 | 
|---|---|---|
| committer | Johan Van Ryseghem | 2018-04-27 15:13:51 +0200 | 
| commit | e1425294874b4cd4d71668e7669220252ea2e936 (patch) | |
| tree | 89d2877305ad5e066e47f3692b1d0b619c381eb1 /spec/policies | |
| parent | 3ed5ca0e97c287977646b7af6a41632c9dd3ad49 (diff) | |
| download | chouette-core-e1425294874b4cd4d71668e7669220252ea2e936.tar.bz2 | |
Refs #6572; Fix specs
Diffstat (limited to 'spec/policies')
| -rw-r--r-- | spec/policies/referential_policy_spec.rb | 225 | 
1 files changed, 112 insertions, 113 deletions
| diff --git a/spec/policies/referential_policy_spec.rb b/spec/policies/referential_policy_spec.rb index 778e14901..f922ef379 100644 --- a/spec/policies/referential_policy_spec.rb +++ b/spec/policies/referential_policy_spec.rb @@ -1,160 +1,159 @@  # coding: utf-8  RSpec.describe ReferentialPolicy, type: :policy do -  let( :record ){ build_stubbed :referential } - -    #    # Collection Based Permissions differ from standard as there is no referential yet    # -------------------------------------------------------------------------------- - -  permissions :create? do -    it 'permissions present → allowed' do -      add_permissions('referentials.create', to_user: user) -      expect_it.to permit(user_context, record) -    end -    it 'permissions absent → forbidden' do -      expect_it.not_to permit(user_context, record) +  context "on a ready referential" do +    let( :record ){ referential } +    permissions :create? do +      it 'permissions present → allowed' do +        add_permissions('referentials.create', to_user: user) +        expect_it.to permit(user_context, record) +      end +      it 'permissions absent → forbidden' do +        expect_it.not_to permit(user_context, record) +      end      end -  end -  permissions :new? do -    it 'permissions present → allowed' do -      add_permissions('referentials.create', to_user: user) -      expect_it.to permit(user_context, record) -    end -    it 'permissions absent → forbidden' do -      expect_it.not_to permit(user_context, record) +    permissions :new? do +      it 'permissions present → allowed' do +        add_permissions('referentials.create', to_user: user) +        expect_it.to permit(user_context, record) +      end +      it 'permissions absent → forbidden' do +        expect_it.not_to permit(user_context, record) +      end      end -  end - -  # -  # Standard Destructive Action Permissions -  # --------------------------------------- -  permissions :destroy? do -    it_behaves_like 'permitted policy and same organisation', 'referentials.destroy', archived_and_finalised: true -  end -  permissions :edit? do -    it_behaves_like 'permitted policy and same organisation', 'referentials.update', archived_and_finalised: true -  end -  permissions :update? do -    it_behaves_like 'permitted policy and same organisation', 'referentials.update', archived_and_finalised: true -  end +    # +    # Standard Destructive Action Permissions +    # --------------------------------------- -  # -  # Custom Permissions -  # ------------------ +    permissions :destroy? do +      it_behaves_like 'permitted policy and same organisation', 'referentials.destroy', archived_and_finalised: true +    end +    permissions :edit? do +      it_behaves_like 'permitted policy and same organisation', 'referentials.update', archived_and_finalised: true +    end +    permissions :update? do +      it_behaves_like 'permitted policy and same organisation', 'referentials.update', archived_and_finalised: true +    end -  # permissions :clone? do -  #   it_behaves_like 'permitted policy', 'referentials.create', archived_and_finalised: true -  # end +    # +    # Custom Permissions +    # ------------------ -  permissions :archive? do +    # permissions :clone? do +    #   it_behaves_like 'permitted policy', 'referentials.create', archived_and_finalised: true +    # end -    context 'permission present →' do -      before do -        add_permissions('referentials.update', to_user: user) -      end +    permissions :archive? do -      context 'same organisation →' do +      context 'permission present →' 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) +          add_permissions('referentials.update', to_user: user)          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 -      context 'different organisations →' do -        it "forbids a user with a different organisation" do -          expect_it.not_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, ready: true  } +            it 'does remove permission for archived referentials' do +              expect_it.not_to permit(user_context, record) +            end +          end          end -        describe "archived" do -          let( :record ){ build_stubbed :referential, archived_at: 2.minutes.ago  } -          it 'forbids for archived referentials' do +        context 'different organisations →' do +          it "forbids a user with a different organisation" do              expect_it.not_to permit(user_context, record)            end -        end -      end -    end +          describe "archived" do +            let( :record ){ build_stubbed :referential, archived_at: 2.minutes.ago, ready: true  } +            it 'forbids for archived referentials' do +              expect_it.not_to permit(user_context, record) +            end +          end -    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 +      end + +      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, ready: true  } +            it 'forbids for archived referentials' do +              expect_it.not_to permit(user_context, record) +            end +          end          end        end      end -  end -  permissions :unarchive? do - -    context 'permission present →' do -      before do -        add_permissions('referentials.update', to_user: user) -      end +    permissions :unarchive? do -      context 'same organisation →' do +      context 'permission present →' 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 +          add_permissions('referentials.update', to_user: user)          end -      end -      context 'different organisations →' do -        it "forbids a user with a different organisation" 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, ready: true  } +            it 'adds permission for archived referentials' do +              expect_it.to permit(user_context, record) +            end +          end          end -        describe "archived" do -          let( :record ){ build_stubbed :referential, archived_at: 2.minutes.ago  } -          it 'still forbids for archived referentials' do +        context 'different organisations →' do +          it "forbids a user with a different organisation" do              expect_it.not_to permit(user_context, record)            end -        end -      end -    end +          describe "archived" do +            let( :record ){ build_stubbed :referential, archived_at: 2.minutes.ago, ready: true  } +            it 'still forbids for archived referentials' do +              expect_it.not_to permit(user_context, record) +            end +          end -    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 +      end + +      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, ready: true  } +            it 'still forbids for archived referentials' do +              expect_it.not_to permit(user_context, record) +            end +          end          end        end      end | 
