aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/policies/access_link_policy_spec.rb10
-rw-r--r--spec/policies/access_point_policy_spec.rb10
-rw-r--r--spec/policies/company_policy_spec.rb5
-rw-r--r--spec/policies/connection_link_policy_spec.rb10
-rw-r--r--spec/policies/group_of_line_policy_spec.rb14
-rw-r--r--spec/policies/journey_pattern_policy_spec.rb10
-rw-r--r--spec/policies/line_policy_spec.rb11
-rw-r--r--spec/policies/network_policy_spec.rb14
-rw-r--r--spec/policies/purchase_window_policy_spec.rb6
-rw-r--r--spec/policies/referential_policy_spec.rb8
-rw-r--r--spec/policies/route_policy_spec.rb12
-rw-r--r--spec/policies/routing_constraint_zone_policy_spec.rb10
-rw-r--r--spec/policies/stop_area_policy_spec.rb4
-rw-r--r--spec/policies/time_table_policy_spec.rb10
-rw-r--r--spec/support/pundit/policies.rb5
-rw-r--r--spec/support/pundit/shared_examples.rb51
16 files changed, 109 insertions, 81 deletions
diff --git a/spec/policies/access_link_policy_spec.rb b/spec/policies/access_link_policy_spec.rb
index 6194ae55c..9ba3ffa45 100644
--- a/spec/policies/access_link_policy_spec.rb
+++ b/spec/policies/access_link_policy_spec.rb
@@ -3,18 +3,18 @@ RSpec.describe AccessLinkPolicy, type: :policy do
let( :record ){ build_stubbed :access_link }
permissions :create? do
- it_behaves_like 'permitted policy and same organisation', "access_links.create", archived: true
+ it_behaves_like 'permitted policy and same organisation', "access_links.create", archived_and_finalised: true
end
permissions :destroy? do
- it_behaves_like 'permitted policy and same organisation', "access_links.destroy", archived: true
+ it_behaves_like 'permitted policy and same organisation', "access_links.destroy", archived_and_finalised: true
end
permissions :edit? do
- it_behaves_like 'permitted policy and same organisation', "access_links.update", archived: true
+ it_behaves_like 'permitted policy and same organisation', "access_links.update", archived_and_finalised: true
end
permissions :new? do
- it_behaves_like 'permitted policy and same organisation', "access_links.create", archived: true
+ it_behaves_like 'permitted policy and same organisation', "access_links.create", archived_and_finalised: true
end
permissions :update? do
- it_behaves_like 'permitted policy and same organisation', "access_links.update", archived: true
+ it_behaves_like 'permitted policy and same organisation', "access_links.update", archived_and_finalised: true
end
end
diff --git a/spec/policies/access_point_policy_spec.rb b/spec/policies/access_point_policy_spec.rb
index b6bc46eb4..ec7bf1486 100644
--- a/spec/policies/access_point_policy_spec.rb
+++ b/spec/policies/access_point_policy_spec.rb
@@ -3,18 +3,18 @@ RSpec.describe AccessPointPolicy, type: :policy do
let( :record ){ build_stubbed :access_point }
permissions :create? do
- it_behaves_like 'permitted policy and same organisation', "access_points.create", archived: true
+ it_behaves_like 'permitted policy and same organisation', "access_points.create", archived_and_finalised: true
end
permissions :destroy? do
- it_behaves_like 'permitted policy and same organisation', "access_points.destroy", archived: true
+ it_behaves_like 'permitted policy and same organisation', "access_points.destroy", archived_and_finalised: true
end
permissions :edit? do
- it_behaves_like 'permitted policy and same organisation', "access_points.update", archived: true
+ it_behaves_like 'permitted policy and same organisation', "access_points.update", archived_and_finalised: true
end
permissions :new? do
- it_behaves_like 'permitted policy and same organisation', "access_points.create", archived: true
+ it_behaves_like 'permitted policy and same organisation', "access_points.create", archived_and_finalised: true
end
permissions :update? do
- it_behaves_like 'permitted policy and same organisation', "access_points.update", archived: true
+ it_behaves_like 'permitted policy and same organisation', "access_points.update", archived_and_finalised: true
end
end
diff --git a/spec/policies/company_policy_spec.rb b/spec/policies/company_policy_spec.rb
index e018902ca..16225c441 100644
--- a/spec/policies/company_policy_spec.rb
+++ b/spec/policies/company_policy_spec.rb
@@ -1,4 +1,3 @@
-# coding: utf-8
RSpec.describe CompanyPolicy, type: :policy do
let( :record ){ build_stubbed :company }
@@ -11,10 +10,10 @@ RSpec.describe CompanyPolicy, type: :policy do
context 'Non Destructive actions →' do
permissions :index? do
- it_behaves_like 'always allowed', 'anything', archived: true
+ it_behaves_like 'always allowed', 'anything', archived_and_finalised: true
end
permissions :show? do
- it_behaves_like 'always allowed', 'anything', archived: true
+ it_behaves_like 'always allowed', 'anything', archived_and_finalised: true
end
end
diff --git a/spec/policies/connection_link_policy_spec.rb b/spec/policies/connection_link_policy_spec.rb
index 23e40abe3..6fc9f95df 100644
--- a/spec/policies/connection_link_policy_spec.rb
+++ b/spec/policies/connection_link_policy_spec.rb
@@ -3,18 +3,18 @@ RSpec.describe ConnectionLinkPolicy, type: :policy do
let( :record ){ build_stubbed :connection_link }
permissions :create? do
- it_behaves_like 'permitted policy and same organisation', "connection_links.create", archived: true
+ it_behaves_like 'permitted policy and same organisation', "connection_links.create", archived_and_finalised: true
end
permissions :destroy? do
- it_behaves_like 'permitted policy and same organisation', "connection_links.destroy", archived: true
+ it_behaves_like 'permitted policy and same organisation', "connection_links.destroy", archived_and_finalised: true
end
permissions :edit? do
- it_behaves_like 'permitted policy and same organisation', "connection_links.update", archived: true
+ it_behaves_like 'permitted policy and same organisation', "connection_links.update", archived_and_finalised: true
end
permissions :new? do
- it_behaves_like 'permitted policy and same organisation', "connection_links.create", archived: true
+ it_behaves_like 'permitted policy and same organisation', "connection_links.create", archived_and_finalised: true
end
permissions :update? do
- it_behaves_like 'permitted policy and same organisation', "connection_links.update", archived: true
+ it_behaves_like 'permitted policy and same organisation', "connection_links.update", archived_and_finalised: true
end
end
diff --git a/spec/policies/group_of_line_policy_spec.rb b/spec/policies/group_of_line_policy_spec.rb
index 29fbb1bfb..0aeab97bd 100644
--- a/spec/policies/group_of_line_policy_spec.rb
+++ b/spec/policies/group_of_line_policy_spec.rb
@@ -10,10 +10,10 @@ RSpec.describe GroupOfLinePolicy, type: :policy do
context 'Non Destructive actions →' do
permissions :index? do
- it_behaves_like 'always allowed', 'anything', archived: true
+ it_behaves_like 'always allowed', 'anything', archived_and_finalised: true
end
permissions :show? do
- it_behaves_like 'always allowed', 'anything', archived: true
+ it_behaves_like 'always allowed', 'anything', archived_and_finalised: true
end
end
@@ -24,19 +24,19 @@ RSpec.describe GroupOfLinePolicy, type: :policy do
context 'Destructive actions →' do
permissions :create? do
- it_behaves_like 'always forbidden', 'group_of_lines.create', archived: true
+ it_behaves_like 'always forbidden', 'group_of_lines.create', archived_and_finalised: true
end
permissions :destroy? do
- it_behaves_like 'always forbidden', 'group_of_lines.destroy', archived: true
+ it_behaves_like 'always forbidden', 'group_of_lines.destroy', archived_and_finalised: true
end
permissions :edit? do
- it_behaves_like 'always forbidden', 'group_of_lines.update', archived: true
+ it_behaves_like 'always forbidden', 'group_of_lines.update', archived_and_finalised: true
end
permissions :new? do
- it_behaves_like 'always forbidden', 'group_of_lines.create', archived: true
+ it_behaves_like 'always forbidden', 'group_of_lines.create', archived_and_finalised: true
end
permissions :update? do
- it_behaves_like 'always forbidden', 'group_of_lines.update', archived: true
+ it_behaves_like 'always forbidden', 'group_of_lines.update', archived_and_finalised: true
end
end
end
diff --git a/spec/policies/journey_pattern_policy_spec.rb b/spec/policies/journey_pattern_policy_spec.rb
index 39f849277..b5e72d813 100644
--- a/spec/policies/journey_pattern_policy_spec.rb
+++ b/spec/policies/journey_pattern_policy_spec.rb
@@ -3,18 +3,18 @@ RSpec.describe JourneyPatternPolicy, type: :policy do
let( :record ){ build_stubbed :journey_pattern }
permissions :create? do
- it_behaves_like 'permitted policy and same organisation', "journey_patterns.create", archived: true
+ it_behaves_like 'permitted policy and same organisation', "journey_patterns.create", archived_and_finalised: true
end
permissions :destroy? do
- it_behaves_like 'permitted policy and same organisation', "journey_patterns.destroy", archived: true
+ it_behaves_like 'permitted policy and same organisation', "journey_patterns.destroy", archived_and_finalised: true
end
permissions :edit? do
- it_behaves_like 'permitted policy and same organisation', "journey_patterns.update", archived: true
+ it_behaves_like 'permitted policy and same organisation', "journey_patterns.update", archived_and_finalised: true
end
permissions :new? do
- it_behaves_like 'permitted policy and same organisation', "journey_patterns.create", archived: true
+ it_behaves_like 'permitted policy and same organisation', "journey_patterns.create", archived_and_finalised: true
end
permissions :update? do
- it_behaves_like 'permitted policy and same organisation', "journey_patterns.update", archived: true
+ it_behaves_like 'permitted policy and same organisation', "journey_patterns.update", archived_and_finalised: true
end
end
diff --git a/spec/policies/line_policy_spec.rb b/spec/policies/line_policy_spec.rb
index 452606bcf..555008abf 100644
--- a/spec/policies/line_policy_spec.rb
+++ b/spec/policies/line_policy_spec.rb
@@ -1,4 +1,3 @@
-# coding: utf-8
RSpec.describe LinePolicy, type: :policy do
let( :record ){ build_stubbed :line }
@@ -11,10 +10,10 @@ RSpec.describe LinePolicy, type: :policy do
context 'Non Destructive actions →' do
permissions :index? do
- it_behaves_like 'always allowed', 'anything', archived: true
+ it_behaves_like 'always allowed', 'anything', archived_and_finalised: true
end
permissions :show? do
- it_behaves_like 'always allowed', 'anything', archived: true
+ it_behaves_like 'always allowed', 'anything', archived_and_finalised: true
end
end
@@ -47,14 +46,14 @@ RSpec.describe LinePolicy, type: :policy do
# ---------------------------
permissions :create_footnote? do
- it_behaves_like 'permitted policy and same organisation', 'footnotes.create', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'footnotes.create', archived_and_finalised: true
end
permissions :destroy_footnote? do
- it_behaves_like 'permitted policy and same organisation', 'footnotes.destroy', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'footnotes.destroy', archived_and_finalised: true
end
permissions :update_footnote? do
- it_behaves_like 'permitted policy and same organisation', 'footnotes.update', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'footnotes.update', archived_and_finalised: true
end
end
diff --git a/spec/policies/network_policy_spec.rb b/spec/policies/network_policy_spec.rb
index c09546c22..6dc3f0d46 100644
--- a/spec/policies/network_policy_spec.rb
+++ b/spec/policies/network_policy_spec.rb
@@ -10,10 +10,10 @@ RSpec.describe Chouette::NetworkPolicy, type: :policy do
context 'Non Destructive actions →' do
permissions :index? do
- it_behaves_like 'always allowed', 'anything', archived: true
+ it_behaves_like 'always allowed', 'anything', archived_and_finalised: true
end
permissions :show? do
- it_behaves_like 'always allowed', 'anything', archived: true
+ it_behaves_like 'always allowed', 'anything', archived_and_finalised: true
end
end
@@ -24,19 +24,19 @@ RSpec.describe Chouette::NetworkPolicy, type: :policy do
context 'Destructive actions →' do
permissions :create? do
- it_behaves_like 'always forbidden', 'networks.create', archived: true
+ it_behaves_like 'always forbidden', 'networks.create', archived_and_finalised: true
end
permissions :destroy? do
- it_behaves_like 'always forbidden', 'networks.destroy', archived: true
+ it_behaves_like 'always forbidden', 'networks.destroy', archived_and_finalised: true
end
permissions :edit? do
- it_behaves_like 'always forbidden', 'networks.update', archived: true
+ it_behaves_like 'always forbidden', 'networks.update', archived_and_finalised: true
end
permissions :new? do
- it_behaves_like 'always forbidden', 'networks.create', archived: true
+ it_behaves_like 'always forbidden', 'networks.create', archived_and_finalised: true
end
permissions :update? do
- it_behaves_like 'always forbidden', 'networks.update', archived: true
+ it_behaves_like 'always forbidden', 'networks.update', archived_and_finalised: true
end
end
end
diff --git a/spec/policies/purchase_window_policy_spec.rb b/spec/policies/purchase_window_policy_spec.rb
index f078bf288..184152cec 100644
--- a/spec/policies/purchase_window_policy_spec.rb
+++ b/spec/policies/purchase_window_policy_spec.rb
@@ -4,12 +4,12 @@ RSpec.describe PurchaseWindowPolicy, type: :policy do
before { stub_policy_scope(record) }
permissions :create? do
- it_behaves_like 'permitted policy and same organisation', "purchase_windows.create", archived: true
+ it_behaves_like 'permitted policy and same organisation', "purchase_windows.create", archived_and_finalised: true
end
permissions :destroy? do
- it_behaves_like 'permitted policy and same organisation', "purchase_windows.destroy", archived: true
+ it_behaves_like 'permitted policy and same organisation', "purchase_windows.destroy", archived_and_finalised: true
end
permissions :update? do
- it_behaves_like 'permitted policy and same organisation', "purchase_windows.update", archived: true
+ it_behaves_like 'permitted policy and same organisation', "purchase_windows.update", archived_and_finalised: true
end
end
diff --git a/spec/policies/referential_policy_spec.rb b/spec/policies/referential_policy_spec.rb
index d00415fc6..8540d3ce9 100644
--- a/spec/policies/referential_policy_spec.rb
+++ b/spec/policies/referential_policy_spec.rb
@@ -32,13 +32,13 @@ RSpec.describe ReferentialPolicy, type: :policy do
# ---------------------------------------
permissions :destroy? do
- it_behaves_like 'permitted policy and same organisation', 'referentials.destroy', archived: true
+ 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: true
+ 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: true
+ it_behaves_like 'permitted policy and same organisation', 'referentials.update', archived_and_finalised: true
end
#
@@ -46,7 +46,7 @@ RSpec.describe ReferentialPolicy, type: :policy do
# ------------------
permissions :clone? do
- it_behaves_like 'permitted policy', 'referentials.create', archived: true
+ it_behaves_like 'permitted policy', 'referentials.create', archived_and_finalised: true
end
permissions :archive? do
diff --git a/spec/policies/route_policy_spec.rb b/spec/policies/route_policy_spec.rb
index df2e41a89..5dc8be76f 100644
--- a/spec/policies/route_policy_spec.rb
+++ b/spec/policies/route_policy_spec.rb
@@ -3,26 +3,26 @@ RSpec.describe Chouette::RoutePolicy, type: :policy do
let( :record ){ build_stubbed :route }
permissions :create? do
- it_behaves_like 'permitted policy and same organisation', 'routes.create', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'routes.create', archived_and_finalised: true
end
permissions :duplicate? do
- it_behaves_like 'permitted policy and same organisation', 'routes.create', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'routes.create', archived_and_finalised: true
end
permissions :destroy? do
- it_behaves_like 'permitted policy and same organisation', 'routes.destroy', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'routes.destroy', archived_and_finalised: true
end
permissions :edit? do
- it_behaves_like 'permitted policy and same organisation', 'routes.update', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'routes.update', archived_and_finalised: true
end
permissions :new? do
- it_behaves_like 'permitted policy and same organisation', 'routes.create', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'routes.create', archived_and_finalised: true
end
permissions :update? do
- it_behaves_like 'permitted policy and same organisation', 'routes.update', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'routes.update', archived_and_finalised: true
end
end
diff --git a/spec/policies/routing_constraint_zone_policy_spec.rb b/spec/policies/routing_constraint_zone_policy_spec.rb
index 2ef15fa95..d619649d3 100644
--- a/spec/policies/routing_constraint_zone_policy_spec.rb
+++ b/spec/policies/routing_constraint_zone_policy_spec.rb
@@ -4,22 +4,22 @@ RSpec.describe RoutingConstraintZonePolicy, type: :policy do
permissions :create? do
- it_behaves_like 'permitted policy and same organisation', 'routing_constraint_zones.create', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'routing_constraint_zones.create', archived_and_finalised: true
end
permissions :destroy? do
- it_behaves_like 'permitted policy and same organisation', 'routing_constraint_zones.destroy', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'routing_constraint_zones.destroy', archived_and_finalised: true
end
permissions :edit? do
- it_behaves_like 'permitted policy and same organisation', 'routing_constraint_zones.update', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'routing_constraint_zones.update', archived_and_finalised: true
end
permissions :new? do
- it_behaves_like 'permitted policy and same organisation', 'routing_constraint_zones.create', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'routing_constraint_zones.create', archived_and_finalised: true
end
permissions :update? do
- it_behaves_like 'permitted policy and same organisation', 'routing_constraint_zones.update', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'routing_constraint_zones.update', archived_and_finalised: true
end
end
diff --git a/spec/policies/stop_area_policy_spec.rb b/spec/policies/stop_area_policy_spec.rb
index 90835d1d8..8144c16e2 100644
--- a/spec/policies/stop_area_policy_spec.rb
+++ b/spec/policies/stop_area_policy_spec.rb
@@ -11,10 +11,10 @@ RSpec.describe StopAreaPolicy, type: :policy do
context 'Non Destructive actions →' do
permissions :index? do
- it_behaves_like 'always allowed', 'anything', archived: true
+ it_behaves_like 'always allowed', 'anything', archived_and_finalised: true
end
permissions :show? do
- it_behaves_like 'always allowed', 'anything', archived: true
+ it_behaves_like 'always allowed', 'anything', archived_and_finalised: true
end
end
diff --git a/spec/policies/time_table_policy_spec.rb b/spec/policies/time_table_policy_spec.rb
index dad3c13bc..5a2abc61d 100644
--- a/spec/policies/time_table_policy_spec.rb
+++ b/spec/policies/time_table_policy_spec.rb
@@ -3,22 +3,22 @@ RSpec.describe TimeTablePolicy, type: :policy do
let( :record ){ build_stubbed :time_table }
permissions :create? do
- it_behaves_like 'permitted policy and same organisation', 'time_tables.create', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'time_tables.create', archived_and_finalised: true
end
permissions :destroy? do
- it_behaves_like 'permitted policy and same organisation', 'time_tables.destroy', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'time_tables.destroy', archived_and_finalised: true
end
permissions :edit? do
- it_behaves_like 'permitted policy and same organisation', 'time_tables.update', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'time_tables.update', archived_and_finalised: true
end
permissions :new? do
- it_behaves_like 'permitted policy and same organisation', 'time_tables.create', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'time_tables.create', archived_and_finalised: true
end
permissions :update? do
- it_behaves_like 'permitted policy and same organisation', 'time_tables.update', archived: true
+ it_behaves_like 'permitted policy and same organisation', 'time_tables.update', archived_and_finalised: true
end
end
diff --git a/spec/support/pundit/policies.rb b/spec/support/pundit/policies.rb
index a3489d9db..d8d12d735 100644
--- a/spec/support/pundit/policies.rb
+++ b/spec/support/pundit/policies.rb
@@ -12,11 +12,14 @@ module Support
UserContext.new(user, referential: referential)
end
+ def finalise_referential
+ referential.referential_suite_id = random_int
+ end
+
def remove_permissions(*permissions, from_user:, save: false)
from_user.permissions -= permissions.flatten
from_user.save! if save
end
-
end
module PoliciesMacros
diff --git a/spec/support/pundit/shared_examples.rb b/spec/support/pundit/shared_examples.rb
index 49f915626..13f537c6d 100644
--- a/spec/support/pundit/shared_examples.rb
+++ b/spec/support/pundit/shared_examples.rb
@@ -1,6 +1,6 @@
RSpec.shared_examples 'always allowed' do
- | permission, archived: false|
+ | permission, archived_and_finalised: false |
context 'same organisation →' do
before do
user.organisation_id = referential.organisation_id
@@ -8,11 +8,16 @@ RSpec.shared_examples 'always allowed' do
it "allows a user with the same organisation" do
expect_it.to permit(user_context, record)
end
- if archived
+ if archived_and_finalised
it 'does not remove permission for archived referentials' do
referential.archived_at = 42.seconds.ago
expect_it.to permit(user_context, record)
end
+
+ it 'does not remove permission for finalised referentials' do
+ finalise_referential
+ expect_it.to permit(user_context, record)
+ end
end
end
@@ -23,27 +28,33 @@ RSpec.shared_examples 'always allowed' do
it "allows a user with a different organisation" do
expect_it.to permit(user_context, record)
end
- if archived
+ if archived_and_finalised
it 'does not remove permission for archived referentials' do
referential.archived_at = 42.seconds.ago
expect_it.to permit(user_context, record)
end
+ it 'does not remove permission for finalised referentials' do
+ finalise_referential
+ expect_it.to permit(user_context, record)
+ end
end
end
end
RSpec.shared_examples 'always forbidden' do
- | permission, archived: false|
+ | permission, archived_and_finalised: 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.not_to permit(user_context, record)
end
- if archived
+
+ if archived_and_finalised
it 'still no permission for archived referentials' do
- referential.archived_at = 42.seconds.ago
+ finalise_referential
expect_it.not_to permit(user_context, record)
end
end
@@ -56,17 +67,22 @@ RSpec.shared_examples 'always forbidden' do
it "denies a user with a different organisation" do
expect_it.not_to permit(user_context, record)
end
- if archived
+ if archived_and_finalised
it 'still no permission for archived referentials' do
referential.archived_at = 42.seconds.ago
expect_it.not_to permit(user_context, record)
end
+
+ it 'still no permission for finalised referentials' do
+ finalise_referential
+ expect_it.not_to permit(user_context, record)
+ end
end
end
end
RSpec.shared_examples 'permitted policy and same organisation' do
- | permission, archived: false|
+ | permission, archived_and_finalised: false |
context 'permission absent → ' do
it "denies a user with a different organisation" do
@@ -92,18 +108,24 @@ RSpec.shared_examples 'permitted policy and same organisation' do
expect_it.to permit(user_context, record)
end
- if archived
+ if archived_and_finalised
it 'removes the permission for archived referentials' do
user.organisation_id = referential.organisation_id
referential.archived_at = 42.seconds.ago
expect_it.not_to permit(user_context, record)
end
+
+ it 'removes the permission for finalised referentials' do
+ user.organisation_id = referential.organisation_id
+ finalise_referential
+ expect_it.not_to permit(user_context, record)
+ end
end
end
end
RSpec.shared_examples 'permitted policy' do
- | permission, archived: false|
+ | permission, archived_and_finalised: false|
context 'permission absent → ' do
it "denies user" do
@@ -120,12 +142,17 @@ RSpec.shared_examples 'permitted policy' do
expect_it.to permit(user_context, record)
end
- if archived
+ if archived_and_finalised
it 'removes the permission for archived referentials' do
user.organisation_id = referential.organisation_id
referential.archived_at = 42.seconds.ago
expect_it.not_to permit(user_context, record)
end
+ it 'removes the permission for finalised referentials' do
+ user.organisation_id = referential.organisation_id
+ finalise_referential
+ expect_it.not_to permit(user_context, record)
+ end
end
end
end
@@ -148,4 +175,4 @@ RSpec.shared_examples 'permitted policy outside referential' do
expect_it.to permit(user_context, record)
end
end
-end \ No newline at end of file
+end