From b401d4893e9a280b07c93227965fcdcd50cbbe4d Mon Sep 17 00:00:00 2001 From: Erik Schierboom Date: Wed, 4 Sep 2024 15:37:05 +0200 Subject: [PATCH] Only update maintainer status when added to track team (#7054) --- app/commands/github/team_member/create.rb | 2 +- test/commands/github/team_member/create_test.rb | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/commands/github/team_member/create.rb b/app/commands/github/team_member/create.rb index 8aa7c26f6f..c9248609a3 100644 --- a/app/commands/github/team_member/create.rb +++ b/app/commands/github/team_member/create.rb @@ -7,7 +7,7 @@ def call return unless user user.github_team_memberships.find_or_create_by!(team_name:).tap do |team_member| - User::UpdateMaintainer.(user) if team_member.previously_new_record? + User::UpdateMaintainer.(user) if team_member.previously_new_record? && team_member.track_id end end diff --git a/test/commands/github/team_member/create_test.rb b/test/commands/github/team_member/create_test.rb index 9093316f20..9230482eb6 100644 --- a/test/commands/github/team_member/create_test.rb +++ b/test/commands/github/team_member/create_test.rb @@ -17,6 +17,7 @@ class Github::TeamMember::CreateTest < ActiveSupport::TestCase github_uid = '137131' team_name = 'fsharp' + create(:track, slug: team_name) user = create(:user, uid: github_uid) User::UpdateMaintainer.expects(:call).with(user).once @@ -38,6 +39,16 @@ class Github::TeamMember::CreateTest < ActiveSupport::TestCase Github::TeamMember::Create.(github_uid, team_name) end + test "noop when team is not track team" do + github_uid = '137131' + team_name = 'configlet' + user = create(:user, uid: github_uid) + + User::UpdateMaintainer.expects(:call).with(user).never + + Github::TeamMember::Create.(github_uid, team_name) + end + test "idempotent" do user_id = '137131' team_name = 'fsharp'