diff options
author | Sean McGivern <sean@mcgivern.me.uk> | 2018-05-29 11:05:10 +0300 |
---|---|---|
committer | Sean McGivern <sean@mcgivern.me.uk> | 2018-05-29 11:05:10 +0300 |
commit | 43ec52ab36069faa060f227fb73d6efeff5b96a5 (patch) | |
tree | dbd608a06c153fb1b72a14a68bc0a61a556f1ccd /spec | |
parent | a75d11211e356e856e563e390fb7470ed5cc3586 (diff) | |
parent | 16e04e006cf8996883ef0c5b7881eb3cbb7079ce (diff) |
Merge branch 'sh-tag-queue-duration-api-calls' into 'master'
Log queue duration for Grape API calls
Closes #46601
See merge request gitlab-org/gitlab-ce!19159
Diffstat (limited to 'spec')
-rw-r--r-- | spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb b/spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb new file mode 100644 index 00000000000..f47b9dd3498 --- /dev/null +++ b/spec/lib/gitlab/grape_logging/loggers/queue_duration_logger_spec.rb @@ -0,0 +1,35 @@ +require 'spec_helper' + +describe Gitlab::GrapeLogging::Loggers::QueueDurationLogger do + subject { described_class.new } + + describe ".parameters" do + let(:start_time) { Time.new(2018, 01, 01) } + + describe 'when no proxy time is available' do + let(:mock_request) { OpenStruct.new(env: {}) } + + it 'returns an empty hash' do + expect(subject.parameters(mock_request, nil)).to eq({}) + end + end + + describe 'when a proxy time is available' do + let(:mock_request) do + OpenStruct.new( + env: { + 'HTTP_GITLAB_WORKHORSE_PROXY_START' => (start_time - 1.hour).to_i * (10**9) + } + ) + end + + it 'returns the correct duration in ms' do + Timecop.freeze(start_time) do + subject.before + + expect(subject.parameters(mock_request, nil)).to eq( { 'queue_duration': 1.hour.to_f * 1000 }) + end + end + end + end +end |