diff --git a/ee/lib/audit/project_setting_changes_auditor.rb b/ee/lib/audit/project_setting_changes_auditor.rb index f982f47e2b24408d9a02544c62512ec531661057..8b360912c0cd88406d7aaae47fb4fbfd2e3c84dc 100644 --- a/ee/lib/audit/project_setting_changes_auditor.rb +++ b/ee/lib/audit/project_setting_changes_auditor.rb @@ -18,9 +18,20 @@ def execute end audit_squash_option - audit_changes(:merge_commit_template, as: 'merge_commit_template', entity: @project, model: model) - audit_changes(:squash_commit_template, as: 'squash_commit_template', entity: @project, model: model, - event_type: 'squash_commit_template_updated') + audit_changes( + :merge_commit_template, + as: 'merge_commit_template', + entity: @project, + model: model, + event_type: 'merge_commit_template_updated' + ) + audit_changes( + :squash_commit_template, + as: 'squash_commit_template', + entity: @project, + model: model, + event_type: 'squash_commit_template_updated' + ) end def attributes_from_auditable_model(column) diff --git a/ee/spec/lib/audit/project_setting_changes_auditor_spec.rb b/ee/spec/lib/audit/project_setting_changes_auditor_spec.rb index e113a347133c368e03cc2d8c2d5cc6fa95de9b37..d03f58e96492d4ab21d6def2ef8f80bb42aea1ed 100644 --- a/ee/spec/lib/audit/project_setting_changes_auditor_spec.rb +++ b/ee/spec/lib/audit/project_setting_changes_auditor_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe Audit::ProjectSettingChangesAuditor do +RSpec.describe Audit::ProjectSettingChangesAuditor, feature_category: :audit_events do using RSpec::Parameterized::TableSyntax describe '#execute' do let_it_be(:user) { create(:user) } @@ -111,6 +111,34 @@ project_setting_changes_auditor.execute end end + + context 'when merge_commit_template is changed' do + before do + project.project_setting.update!(merge_commit_template: 'old merge commit template') + end + + it 'creates an audit event' do + project.project_setting.update!(merge_commit_template: 'new merge commit template') + + aggregate_failures do + expect { project_setting_changes_auditor.execute }.to change(AuditEvent, :count).by(1) + expect(AuditEvent.last.details).to include({ + change: 'merge_commit_template', + from: 'old merge commit template', + to: 'new merge commit template' + }) + end + end + + it 'streams correct audit event stream' do + project.project_setting.update!(merge_commit_template: 'new merge commit template') + + expect(AuditEvents::AuditEventStreamingWorker).to receive(:perform_async).with( + 'merge_commit_template_updated', anything, anything) + + project_setting_changes_auditor.execute + end + end end end end