From 96e841a635776e23a788f93e2fe99b78b45f73f2 Mon Sep 17 00:00:00 2001
From: Joffrey JAFFEUX <j.jaffeux@gmail.com>
Date: Mon, 30 Mar 2020 18:02:34 +0200
Subject: [PATCH] DEV: trigger :username_changed when a user is renamed (#9301)

---
 app/jobs/regular/update_username.rb    | 2 ++
 spec/services/username_changer_spec.rb | 9 ++++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/app/jobs/regular/update_username.rb b/app/jobs/regular/update_username.rb
index a92cf82c6e0..d43c119060d 100644
--- a/app/jobs/regular/update_username.rb
+++ b/app/jobs/regular/update_username.rb
@@ -34,6 +34,8 @@ module Jobs
       update_revisions
       update_notifications
       update_post_custom_fields
+
+      DiscourseEvent.trigger(:username_changed, @old_username, @new_username)
     end
 
     def update_posts
diff --git a/spec/services/username_changer_spec.rb b/spec/services/username_changer_spec.rb
index 3fb20ceb4dd..0013c82a942 100644
--- a/spec/services/username_changer_spec.rb
+++ b/spec/services/username_changer_spec.rb
@@ -11,13 +11,20 @@ describe UsernameChanger do
     let(:user) { Fabricate(:user) }
 
     context 'success' do
+      let!(:old_username) { user.username }
       let(:new_username) { "#{user.username}1234" }
 
       it 'should change the username' do
-        @result = UsernameChanger.change(user, new_username)
+        event = DiscourseEvent.track_events {
+          @result = UsernameChanger.change(user, new_username)
+        }.last
 
         expect(@result).to eq(true)
 
+        expect(event[:event_name]).to eq(:username_changed)
+        expect(event[:params].first).to eq(old_username)
+        expect(event[:params].second).to eq(new_username)
+
         user.reload
         expect(user.username).to eq(new_username)
         expect(user.username_lower).to eq(new_username.downcase)