aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
authorRobert2017-07-06 11:40:03 +0200
committerRobert2017-07-06 11:44:46 +0200
commit1b5b681603f629b901deabffc4c55f654bbcfe14 (patch)
tree981e874bcc11a39285b456c19a983d007f86cef9 /spec
parentb09994a4ee79f735f9b3f43535c6d138c4b68a56 (diff)
downloadchouette-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.rb37
-rw-r--r--spec/policies/line_policy_spec.rb110
-rw-r--r--spec/policies/route_policy_spec.rb4
-rw-r--r--spec/policies/stop_point_policy_spec.rb5
-rw-r--r--spec/support/pundit/shared_examples.rb25
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