diff options
| author | Robert | 2017-07-06 11:40:03 +0200 |
|---|---|---|
| committer | Robert | 2017-07-06 11:44:46 +0200 |
| commit | 1b5b681603f629b901deabffc4c55f654bbcfe14 (patch) | |
| tree | 981e874bcc11a39285b456c19a983d007f86cef9 /spec | |
| parent | b09994a4ee79f735f9b3f43535c6d138c4b68a56 (diff) | |
| download | chouette-core-1b5b681603f629b901deabffc4c55f654bbcfe14.tar.bz2 | |
Fixes: #3478@1.5h
- Fixes remaining issues with LinePolicy, CalenderPolicy & RoutePolicy
- Dead Code elimination
Diffstat (limited to 'spec')
| -rw-r--r-- | spec/policies/calendar_policy_spec.rb | 37 | ||||
| -rw-r--r-- | spec/policies/line_policy_spec.rb | 110 | ||||
| -rw-r--r-- | spec/policies/route_policy_spec.rb | 4 | ||||
| -rw-r--r-- | spec/policies/stop_point_policy_spec.rb | 5 | ||||
| -rw-r--r-- | spec/support/pundit/shared_examples.rb | 25 |
5 files changed, 17 insertions, 164 deletions
diff --git a/spec/policies/calendar_policy_spec.rb b/spec/policies/calendar_policy_spec.rb index f4423fb82..57f771c54 100644 --- a/spec/policies/calendar_policy_spec.rb +++ b/spec/policies/calendar_policy_spec.rb @@ -1,47 +1,22 @@ RSpec.describe CalendarPolicy, type: :policy do let( :record ){ build_stubbed :calendar } + before { stub_policy_scope(record) } - shared_examples 'authorizes on archived and same organisation only' do - | permission, archived: false| - 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 - if archived - it 'removes permission for archived referentials' do - referential.archived_at = 42.seconds.ago - expect_it.not_to permit(user_context, record) - end - end - end - - context 'different organisations →' do - before do - add_permissions(permission, for_user: user) - end - it "denies a user with a different organisation" do - expect_it.not_to permit(user_context, record) - end - end - end permissions :create? do - it_behaves_like 'authorizes on archived and same organisation only', 'calendars.create', archived: true + it_behaves_like 'permitted policy and same organisation', 'calendars.create', archived: true end permissions :destroy? do - it_behaves_like 'authorizes on archived and same organisation only', 'calendars.destroy', archived: true + it_behaves_like 'permitted policy and same organisation', 'calendars.destroy', archived: true end permissions :edit? do - it_behaves_like 'authorizes on archived and same organisation only', 'calendars.update', archived: true + it_behaves_like 'permitted policy and same organisation', 'calendars.update', archived: true end permissions :new? do - it_behaves_like 'authorizes on archived and same organisation only', 'calendars.create', archived: true + it_behaves_like 'permitted policy and same organisation', 'calendars.create', archived: true end permissions :update? do - it_behaves_like 'authorizes on archived and same organisation only', 'calendars.update', archived: true + it_behaves_like 'permitted policy and same organisation', 'calendars.update', archived: true end end diff --git a/spec/policies/line_policy_spec.rb b/spec/policies/line_policy_spec.rb index d9e684847..334073506 100644 --- a/spec/policies/line_policy_spec.rb +++ b/spec/policies/line_policy_spec.rb @@ -46,118 +46,14 @@ RSpec.describe LinePolicy, type: :policy do # --------------------------- permissions :create_footnote? do - context 'permission present →' do - before do - add_permissions('footnotes.create', for_user: user) - end - - it 'authorized for unarchived referentials' do - expect_it.to permit(user_context, record) - end - - it 'forbidden for archived referentials' do - referential.archived_at = 1.second.ago - expect_it.not_to permit(user_context, record) - end - end - - context 'permission absent →' do - it 'is forbidden' do - expect_it.not_to permit(user_context, record) - end - end + it_behaves_like 'permitted policy and same organisation', 'footnotes.create', archived: true end permissions :destroy_footnote? do - context 'permission present →' do - before do - add_permissions('footnotes.destroy', for_user: user) - end - - it 'authorized for unarchived referentials' do - expect_it.to permit(user_context, record) - end - - it 'forbidden for archived referentials' do - referential.archived_at = 1.second.ago - expect_it.not_to permit(user_context, record) - end - end - - context 'permission absent →' do - it 'is forbidden' do - expect_it.not_to permit(user_context, record) - end - end - end - - permissions :edit_footnote? do - context 'permission present →' do - before do - add_permissions('footnotes.update', for_user: user) - end - - it 'authorized for unarchived referentials' do - expect_it.to permit(user_context, record) - end - - it 'forbidden for archived referentials' do - referential.archived_at = 1.second.ago - expect_it.not_to permit(user_context, record) - end - end - - context 'permission absent →' do - it 'is forbidden' do - expect_it.not_to permit(user_context, record) - end - end - end - - permissions :new_footnote? do - context 'permission present →' do - before do - add_permissions('footnotes.create', for_user: user) - end - - it 'authorized for unarchived referentials' do - expect_it.to permit(user_context, record) - end - - it 'forbidden for archived referentials' do - referential.archived_at = 1.second.ago - expect_it.not_to permit(user_context, record) - end - end - - context 'permission absent →' do - it 'is forbidden' do - expect_it.not_to permit(user_context, record) - end - end + it_behaves_like 'permitted policy and same organisation', 'footnotes.destroy', archived: true end permissions :update_footnote? do - context 'permission present →' do - before do - add_permissions('footnotes.update', for_user: user) - end - - it 'authorized for unarchived referentials' do - expect_it.to permit(user_context, record) - end - - it 'forbidden for archived referentials' do - referential.archived_at = 1.second.ago - expect_it.not_to permit(user_context, record) - end - end - - context 'permission absent →' do - it 'is forbidden' do - expect_it.not_to permit(user_context, record) - end - end + it_behaves_like 'permitted policy and same organisation', 'footnotes.update', archived: true end - end diff --git a/spec/policies/route_policy_spec.rb b/spec/policies/route_policy_spec.rb index 6be517048..243d85acb 100644 --- a/spec/policies/route_policy_spec.rb +++ b/spec/policies/route_policy_spec.rb @@ -3,7 +3,7 @@ RSpec.describe RoutePolicy, type: :policy do let( :record ){ build_stubbed :route } permissions :create? do - it_behaves_like 'permitted policy', 'routes.create', archived: true + it_behaves_like 'permitted policy and same organisation', 'routes.create', archived: true end permissions :destroy? do @@ -15,7 +15,7 @@ RSpec.describe RoutePolicy, type: :policy do end permissions :new? do - it_behaves_like 'permitted policy', 'routes.create', archived: true + it_behaves_like 'permitted policy and same organisation', 'routes.create', archived: true end permissions :update? do diff --git a/spec/policies/stop_point_policy_spec.rb b/spec/policies/stop_point_policy_spec.rb new file mode 100644 index 000000000..2a8b9b905 --- /dev/null +++ b/spec/policies/stop_point_policy_spec.rb @@ -0,0 +1,5 @@ +RSpec.describe Chouette::StopPoint do + describe "using RoutePolicy" do + it { expect( described_class.policy_class ).to eq(RoutePolicy) } + end +end diff --git a/spec/support/pundit/shared_examples.rb b/spec/support/pundit/shared_examples.rb index 357004f4e..b91caa479 100644 --- a/spec/support/pundit/shared_examples.rb +++ b/spec/support/pundit/shared_examples.rb @@ -64,6 +64,7 @@ RSpec.shared_examples 'always forbidden' do end end end +j RSpec.shared_examples 'permitted policy and same organisation' do | permission, archived: false| @@ -100,27 +101,3 @@ RSpec.shared_examples 'permitted policy and same organisation' do end end end - -RSpec.shared_examples 'permitted policy' do - | permission, archived: false| - context 'permission absent → ' do - it "denies a user with a different organisation" do - expect_it.not_to permit(user_context, record) - end - end - context 'permission present → ' do - before do - add_permissions(permission, for_user: user) - end - it 'allows a user with a different organisation' do - expect_it.to permit(user_context, record) - end - - if archived - it 'removes the permission for archived referentials' do - referential.archived_at = 42.seconds.ago - expect_it.not_to permit(user_context, record) - end - end - end -end |
