From d67cec0e57b6fcba9851c5ec75b80e4ab6328242 Mon Sep 17 00:00:00 2001 From: Nicholas Lee Date: Tue, 26 May 2026 17:11:53 -0700 Subject: [PATCH] chore: standardize CI and test configuration --- Gemfile | 2 +- Rakefile | 2 +- test/authorization_test.rb | 42 ++++++++------- test/helper_test.rb | 15 +++--- test/model_test.rb | 108 +++++++++++++++++++------------------ 5 files changed, 90 insertions(+), 79 deletions(-) diff --git a/Gemfile b/Gemfile index cd793a8..ef0a342 100644 --- a/Gemfile +++ b/Gemfile @@ -9,7 +9,7 @@ source 'https://rubygems.org' do gem 'dry-types', '<= 1.8' # Issue with 1.8.1 gem 'grape', '>= 1.6', '< 3' gem 'minitest', '>= 5.27', '< 6' - gem 'minitest-reporters', '>= 1.7', '< 2' + gem 'minitest-reporters', '>= 1.8', '< 2' gem 'mocha', '>= 3', '< 4' gem 'rake', '>= 13.3', '< 14' gem 'rubocop', '1.85.0', groups: %i[development test] diff --git a/Rakefile b/Rakefile index 97fa185..79e0aa7 100644 --- a/Rakefile +++ b/Rakefile @@ -21,7 +21,7 @@ task default: :test Rake::TestTask.new(:test) do |t| t.libs << 'lib' << 'test' t.pattern = 'test/**/*_test.rb' - t.verbose = true + t.verbose = false t.warning = false end diff --git a/test/authorization_test.rb b/test/authorization_test.rb index 1c7296b..3f7a78d 100644 --- a/test/authorization_test.rb +++ b/test/authorization_test.rb @@ -329,10 +329,11 @@ def test_guest_user end ) engine = Authorization::Engine.new(reader) - Authorization.stub :current_user, MockUser.new do - assert engine.permit?(:test, context: :permissions) - assert !engine.permit?(:test, context: :permissions_2) - end + Authorization.stubs(:current_user).returns(MockUser.new) + assert engine.permit?(:test, context: :permissions) + assert !engine.permit?(:test, context: :permissions_2) + ensure + Authorization.unstub(:current_user) end def test_default_role @@ -344,14 +345,16 @@ def test_default_role end end ) - Authorization.stub :default_role, :anonymous do - engine = Authorization::Engine.new(reader) - Authorization.stub :current_user, MockUser.new do - assert engine.permit?(:test, context: :permissions) - end - assert !engine.permit?(:test, context: :permissions, - user: MockUser.new(:guest)) - end + Authorization.stubs(:default_role).returns(:anonymous) + engine = Authorization::Engine.new(reader) + Authorization.stubs(:current_user).returns(MockUser.new) + assert engine.permit?(:test, context: :permissions) + Authorization.unstub(:current_user) + assert !engine.permit?(:test, context: :permissions, + user: MockUser.new(:guest)) + ensure + Authorization.unstub(:default_role) + Authorization.unstub(:current_user) end def test_invalid_user_model @@ -1149,14 +1152,15 @@ def test_multithread ) engine = Authorization::Engine.new(reader) - Authorization.stub :current_user, MockUser.new(:test_role) do - assert engine.permit?(:test, context: :permissions) - Thread.new do - Authorization.current_user = MockUser.new(:test_role2) - assert !engine.permit?(:test, context: :permissions) - end - assert engine.permit?(:test, context: :permissions) + Authorization.stubs(:current_user).returns(MockUser.new(:test_role)) + assert engine.permit?(:test, context: :permissions) + Thread.new do + Authorization.current_user = MockUser.new(:test_role2) + assert !engine.permit?(:test, context: :permissions) end + assert engine.permit?(:test, context: :permissions) + ensure + Authorization.unstub(:current_user) end def test_clone diff --git a/test/helper_test.rb b/test/helper_test.rb index 72265e9..e9c64a7 100644 --- a/test/helper_test.rb +++ b/test/helper_test.rb @@ -156,15 +156,16 @@ def test_has_role_with_guest_user } request!(nil, :action, reader) - Authorization.stub :current_user, MockUser.new do - assert !has_role?(:test_role) + Authorization.stubs(:current_user).returns(MockUser.new) + assert !has_role?(:test_role) - block_evaled = false - has_role?(:test_role) do - block_evaled = true - end - assert !block_evaled + block_evaled = false + has_role?(:test_role) do + block_evaled = true end + assert !block_evaled + ensure + Authorization.unstub(:current_user) end def test_has_role_with_hierarchy diff --git a/test/model_test.rb b/test/model_test.rb index 25852b4..002bb57 100644 --- a/test/model_test.rb +++ b/test/model_test.rb @@ -1318,17 +1318,18 @@ def test_model_security_write_allowed } Authorization::Engine.instance(reader) - Authorization.stub :current_user, MockUser.new(:test_role) do - assert(object = TestModelSecurityModel.create) + Authorization.stubs(:current_user).returns(MockUser.new(:test_role)) + assert(object = TestModelSecurityModel.create) - assert_nothing_raised { object.update(:attr_2 => 2) } - object.reload - assert_equal 2, object.attr_2 - object.destroy - assert_raise ActiveRecord::RecordNotFound do - TestModelSecurityModel.find(object.id) - end + assert_nothing_raised { object.update(:attr_2 => 2) } + object.reload + assert_equal 2, object.attr_2 + object.destroy + assert_raise ActiveRecord::RecordNotFound do + TestModelSecurityModel.find(object.id) end + ensure + Authorization.unstub(:current_user) end def test_model_security_write_not_allowed_no_privilege @@ -1375,24 +1376,25 @@ def test_model_security_write_not_allowed_wrong_attribute_value } Authorization::Engine.instance(reader) - Authorization.stub :current_user, MockUser.new(:test_role) do - assert(object = TestModelSecurityModel.create) - assert_raise Authorization::AttributeAuthorizationError do - TestModelSecurityModel.create :attr => 2 - end - object = TestModelSecurityModel.create - assert_raise Authorization::AttributeAuthorizationError do - object.update(:attr => 2) - end - object.reload + Authorization.stubs(:current_user).returns(MockUser.new(:test_role)) + assert(object = TestModelSecurityModel.create) + assert_raise Authorization::AttributeAuthorizationError do + TestModelSecurityModel.create :attr => 2 + end + object = TestModelSecurityModel.create + assert_raise Authorization::AttributeAuthorizationError do + object.update(:attr => 2) + end + object.reload - assert_nothing_raised do - object.update(:attr_2 => 1) - end - assert_raise Authorization::AttributeAuthorizationError do - object.update(:attr => 2) - end + assert_nothing_raised do + object.update(:attr_2 => 1) end + assert_raise Authorization::AttributeAuthorizationError do + object.update(:attr => 2) + end + ensure + Authorization.unstub(:current_user) end def test_model_security_with_and_without_find_restrictions @@ -1442,13 +1444,14 @@ def test_model_security_with_read_restrictions_and_exists Authorization::Engine.instance(reader) test_attr = TestAttr.create - Authorization.stub :current_user, MockUser.new(:test_role, :test_attr => test_attr) do - object_with_find = TestModelSecurityModelWithFind.create :test_attr => test_attr - assert_nothing_raised do - object_with_find.class.find(object_with_find.id) - end - assert_equal 1, test_attr.test_model_security_model_with_finds.length + Authorization.stubs(:current_user).returns(MockUser.new(:test_role, :test_attr => test_attr)) + object_with_find = TestModelSecurityModelWithFind.create :test_attr => test_attr + assert_nothing_raised do + object_with_find.class.find(object_with_find.id) end + assert_equal 1, test_attr.test_model_security_model_with_finds.length + ensure + Authorization.unstub(:current_user) end def test_model_security_delete_unallowed @@ -1497,9 +1500,10 @@ def test_model_security_changing_critical_attribute_unallowed } Authorization::Engine.instance(reader) - Authorization.stub :current_user, MockUser.new(:test_role_unrestricted) do - object = TestModelSecurityModel.create :attr => 2 - end + Authorization.stubs(:current_user).returns(MockUser.new(:test_role_unrestricted)) + object = TestModelSecurityModel.create :attr => 2 + ensure + Authorization.unstub(:current_user) end def test_model_security_no_role_unallowed @@ -1510,11 +1514,12 @@ def test_model_security_no_role_unallowed } Authorization::Engine.instance(reader) - Authorization.stub :current_user, MockUser.new(:test_role_2) do - assert_raise Authorization::NotAuthorized do - TestModelSecurityModel.create - end + Authorization.stubs(:current_user).returns(MockUser.new(:test_role_2)) + assert_raise Authorization::NotAuthorized do + TestModelSecurityModel.create end + ensure + Authorization.unstub(:current_user) end def test_model_security_with_assoc @@ -1533,20 +1538,21 @@ def test_model_security_with_assoc test_attr = TestAttr.create test_attr.role_symbols << :test_role - Authorization.stub :current_user, test_attr do - assert(object = TestModelSecurityModel.create(:test_attrs => [test_attr])) - assert_nothing_raised do - object.update(:attr_2 => 2) - end - without_access_control do - object.reload - end - assert_equal 2, object.attr_2 - object.destroy - assert_raise ActiveRecord::RecordNotFound do - TestModelSecurityModel.find(object.id) - end + Authorization.stubs(:current_user).returns(test_attr) + assert(object = TestModelSecurityModel.create(:test_attrs => [test_attr])) + assert_nothing_raised do + object.update(:attr_2 => 2) end + without_access_control do + object.reload + end + assert_equal 2, object.attr_2 + object.destroy + assert_raise ActiveRecord::RecordNotFound do + TestModelSecurityModel.find(object.id) + end + ensure + Authorization.unstub(:current_user) end def test_model_security_with_update_attrbributes