diff options
Diffstat (limited to 'spec/lib/atlassian/jira_connect/client_spec.rb')
-rw-r--r-- | spec/lib/atlassian/jira_connect/client_spec.rb | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/spec/lib/atlassian/jira_connect/client_spec.rb b/spec/lib/atlassian/jira_connect/client_spec.rb index 40ffec21b26..cefd1fa3274 100644 --- a/spec/lib/atlassian/jira_connect/client_spec.rb +++ b/spec/lib/atlassian/jira_connect/client_spec.rb @@ -11,9 +11,20 @@ RSpec.describe Atlassian::JiraConnect::Client do Timecop.freeze { example.run } end + describe '.generate_update_sequence_id' do + it 'returns monotonic_time converted it to integer' do + allow(Gitlab::Metrics::System).to receive(:monotonic_time).and_return(1.0) + + expect(described_class.generate_update_sequence_id).to eq(1) + end + end + describe '#store_dev_info' do - it "calls the API with auth headers" do - expected_jwt = Atlassian::Jwt.encode( + let_it_be(:project) { create_default(:project, :repository) } + let_it_be(:merge_requests) { create_list(:merge_request, 2, :unique_branches) } + + let(:expected_jwt) do + Atlassian::Jwt.encode( Atlassian::Jwt.build_claims( Atlassian::JiraConnect.app_key, '/rest/devinfo/0.10/bulk', @@ -21,7 +32,9 @@ RSpec.describe Atlassian::JiraConnect::Client do ), 'sample_secret' ) + end + before do stub_full_request('https://gitlab-test.atlassian.net/rest/devinfo/0.10/bulk', method: :post) .with( headers: { @@ -29,8 +42,18 @@ RSpec.describe Atlassian::JiraConnect::Client do 'Content-Type' => 'application/json' } ) + end + + it "calls the API with auth headers" do + subject.store_dev_info(project: project) + end + + it 'avoids N+1 database queries' do + control_count = ActiveRecord::QueryRecorder.new { subject.store_dev_info(project: project, merge_requests: merge_requests) }.count + + merge_requests << create(:merge_request, :unique_branches) - subject.store_dev_info(project: create(:project)) + expect { subject.store_dev_info(project: project, merge_requests: merge_requests) }.not_to exceed_query_limit(control_count) end end end |