diff options
Diffstat (limited to 'spec/services/jira_connect/sync_service_spec.rb')
-rw-r--r-- | spec/services/jira_connect/sync_service_spec.rb | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/spec/services/jira_connect/sync_service_spec.rb b/spec/services/jira_connect/sync_service_spec.rb index 7457cdca13c..019370ce87f 100644 --- a/spec/services/jira_connect/sync_service_spec.rb +++ b/spec/services/jira_connect/sync_service_spec.rb @@ -7,9 +7,11 @@ RSpec.describe JiraConnect::SyncService, feature_category: :integrations do describe '#execute' do let_it_be(:project) { create(:project, :repository) } + let_it_be(:merge_request) { create(:merge_request, source_project: project) } + let_it_be(:merge_request_reviewer) { create(:merge_request_reviewer, merge_request: merge_request) } let(:client) { Atlassian::JiraConnect::Client } - let(:info) { { a: 'Some', b: 'Info' } } + let(:info) { { a: 'Some', b: 'Info', merge_requests: [merge_request] } } subject do described_class.new(project).execute(**info) @@ -44,6 +46,20 @@ RSpec.describe JiraConnect::SyncService, feature_category: :integrations do subject end + it 'does not execute any queries for preloaded reviewers' do + expect_next(client).to store_info + + expect_log(:info, { 'status': 'success' }) + + amount = ActiveRecord::QueryRecorder + .new { info[:merge_requests].flat_map(&:merge_request_reviewers).map(&:reviewer) } + .count + + expect(amount).to be_zero + + subject + end + context 'when a request returns errors' do it 'logs each response as an error' do expect_next(client).to store_info( |