]> git.openstreetmap.org Git - rails.git/commitdiff
Add user transient attribute to oauth_access_token factory
authorAnton Khorev <tony29@yandex.ru>
Thu, 23 Jan 2025 14:43:30 +0000 (17:43 +0300)
committerAnton Khorev <tony29@yandex.ru>
Thu, 23 Jan 2025 14:43:30 +0000 (17:43 +0300)
test/abilities/api_abilities_test.rb
test/abilities/api_capability_test.rb
test/controllers/oauth2_authorized_applications_controller_test.rb
test/factories/oauth_access_token.rb
test/models/user_test.rb
test/test_helper.rb

index a68704f1ae7f1698d525f33118b54fcd8728eb47..0c97dc6a0b58ad099b18b443e78c615059630ced 100644 (file)
@@ -36,7 +36,7 @@ end
 
 class ModeratorApiAbilityTest < ApiAbilityTest
   test "Note permissions" do
-    token = create(:oauth_access_token, :scopes => %w[write_notes], :resource_owner_id => create(:moderator_user).id)
+    token = create(:oauth_access_token, :scopes => %w[write_notes], :user => create(:moderator_user))
     ability = ApiAbility.new token
 
     [:index, :create, :comment, :feed, :show, :search, :close, :reopen, :destroy].each do |action|
index 8f5272c50b6a95b25a02ca0f90dd2efe7608a57f..ca679dd717f338b5f7edb1e6f6fb4d57bbeeb1bf 100644 (file)
@@ -26,7 +26,7 @@ class ChangesetCommentApiCapabilityTest < ActiveSupport::TestCase
   end
 
   test "as a moderator with permissionless token" do
-    token = create(:oauth_access_token, :resource_owner_id => create(:moderator_user).id)
+    token = create(:oauth_access_token, :user => create(:moderator_user))
     ability = ApiAbility.new token
 
     [:create, :destroy, :restore].each do |action|
@@ -35,7 +35,7 @@ class ChangesetCommentApiCapabilityTest < ActiveSupport::TestCase
   end
 
   test "as a moderator with write_api token" do
-    token = create(:oauth_access_token, :resource_owner_id => create(:moderator_user).id, :scopes => %w[write_api])
+    token = create(:oauth_access_token, :user => create(:moderator_user), :scopes => %w[write_api])
     ability = ApiAbility.new token
 
     [:create, :destroy, :restore].each do |action|
@@ -68,7 +68,7 @@ class NoteApiCapabilityTest < ActiveSupport::TestCase
   end
 
   test "as a moderator with permissionless token" do
-    token = create(:oauth_access_token, :resource_owner_id => create(:moderator_user).id)
+    token = create(:oauth_access_token, :user => create(:moderator_user))
     ability = ApiAbility.new token
 
     [:destroy].each do |action|
@@ -77,7 +77,7 @@ class NoteApiCapabilityTest < ActiveSupport::TestCase
   end
 
   test "as a moderator with write_notes token" do
-    token = create(:oauth_access_token, :resource_owner_id => create(:moderator_user).id, :scopes => %w[write_notes])
+    token = create(:oauth_access_token, :user => create(:moderator_user), :scopes => %w[write_notes])
     ability = ApiAbility.new token
 
     [:destroy].each do |action|
index 584d00ce859992958c3749f97e0218abfdb85085..a2bce266d2f10491ef275a9a196da21cc66189e5 100644 (file)
@@ -18,10 +18,10 @@ class Oauth2AuthorizedApplicationsControllerTest < ActionDispatch::IntegrationTe
     user = create(:user)
     application1 = create(:oauth_application)
     create(:oauth_access_grant, :resource_owner_id => user.id, :application => application1)
-    create(:oauth_access_token, :resource_owner_id => user.id, :application => application1)
+    create(:oauth_access_token, :user => user, :application => application1)
     application2 = create(:oauth_application)
     create(:oauth_access_grant, :resource_owner_id => user.id, :application => application2)
-    create(:oauth_access_token, :resource_owner_id => user.id, :application => application2)
+    create(:oauth_access_token, :user => user, :application => application2)
     create(:oauth_application)
 
     get oauth_authorized_applications_path
@@ -39,9 +39,9 @@ class Oauth2AuthorizedApplicationsControllerTest < ActionDispatch::IntegrationTe
     user = create(:user)
     application1 = create(:oauth_application, :scopes => %w[read_prefs write_prefs write_diary read_gpx write_gpx])
     create(:oauth_access_grant, :resource_owner_id => user.id, :application => application1, :scopes => %w[read_prefs write_prefs])
-    create(:oauth_access_token, :resource_owner_id => user.id, :application => application1, :scopes => %w[read_prefs write_prefs])
+    create(:oauth_access_token, :user => user, :application => application1, :scopes => %w[read_prefs write_prefs])
     create(:oauth_access_grant, :resource_owner_id => user.id, :application => application1, :scopes => %w[read_prefs write_diary])
-    create(:oauth_access_token, :resource_owner_id => user.id, :application => application1, :scopes => %w[read_prefs write_diary])
+    create(:oauth_access_token, :user => user, :application => application1, :scopes => %w[read_prefs write_diary])
 
     get oauth_authorized_applications_path
     assert_redirected_to login_path(:referer => oauth_authorized_applications_path)
@@ -64,10 +64,10 @@ class Oauth2AuthorizedApplicationsControllerTest < ActionDispatch::IntegrationTe
     user = create(:user)
     application1 = create(:oauth_application)
     create(:oauth_access_grant, :resource_owner_id => user.id, :application => application1)
-    create(:oauth_access_token, :resource_owner_id => user.id, :application => application1)
+    create(:oauth_access_token, :user => user, :application => application1)
     application2 = create(:oauth_application)
     create(:oauth_access_grant, :resource_owner_id => user.id, :application => application2)
-    create(:oauth_access_token, :resource_owner_id => user.id, :application => application2)
+    create(:oauth_access_token, :user => user, :application => application2)
     create(:oauth_application)
 
     delete oauth_authorized_application_path(:id => application1.id)
index 6a8b62f6c077217548278d3330c6c98c2823abc7..dce8c6520dd3044889d2feac87c94117beb5d38e 100644 (file)
@@ -2,6 +2,10 @@ FactoryBot.define do
   factory :oauth_access_token, :class => "Doorkeeper::AccessToken" do
     application :factory => :oauth_application
 
-    resource_owner_id { create(:user).id }
+    resource_owner_id { user.id }
+
+    transient do
+      user { create(:user) } # rubocop:disable FactoryBot/FactoryAssociationWithStrategy
+    end
   end
 end
index 5c1c5a26f2a37f2520a10d1f368743c088804681..1bcdec44d3a3313b3d0165d3adb8c6b06f275078 100644 (file)
@@ -306,7 +306,7 @@ class UserTest < ActiveSupport::TestCase
 
   def test_soft_destroy_revokes_oauth2_tokens
     user = create(:user)
-    oauth_access_token = create(:oauth_access_token, :resource_owner_id => user.id)
+    oauth_access_token = create(:oauth_access_token, :user => user)
     assert_equal 1, user.access_tokens.not_expired.count
 
     user.soft_destroy
index 79d5d0d33664e53769d575684ae9dc86e7445c3c..90a33dbf60ed5895dd2a1ec5489ae3d85ac746fb 100644 (file)
@@ -138,7 +138,7 @@ module ActiveSupport
     def bearer_authorization_header(token_or_user = nil, scopes: Oauth::SCOPES)
       token = case token_or_user
               when nil then create(:oauth_access_token, :scopes => scopes).token
-              when User then create(:oauth_access_token, :resource_owner_id => token_or_user.id, :scopes => scopes).token
+              when User then create(:oauth_access_token, :user => token_or_user, :scopes => scopes).token
               when Doorkeeper::AccessToken then token_or_user.token
               when String then token_or_user
               end