summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorSean McGivern <sean@mcgivern.me.uk>2017-04-03 14:51:37 +0000
committerSean McGivern <sean@mcgivern.me.uk>2017-04-03 14:51:37 +0000
commit872b3215d2f07a11e4b5a3dc163fc5c39423ef78 (patch)
tree2c933ba9fc0a4d67dc6927db68d7a5e3edb6bb3a /spec
parentb23b76d8eb182ccc57beee37340ff3c5b726dd9b (diff)
parent9543025e88d3d0fe298e95330b8d38802da50cc6 (diff)
downloadgitlab-ce-872b3215d2f07a11e4b5a3dc163fc5c39423ef78.tar.gz
Merge branch 'introduce-base-polling-interval' into 'master'
Introduce "polling_interval_multiplier" as application setting Closes #29759 See merge request !10280
Diffstat (limited to 'spec')
-rw-r--r--spec/lib/gitlab/etag_caching/middleware_spec.rb13
-rw-r--r--spec/lib/gitlab/polling_interval_spec.rb34
2 files changed, 47 insertions, 0 deletions
diff --git a/spec/lib/gitlab/etag_caching/middleware_spec.rb b/spec/lib/gitlab/etag_caching/middleware_spec.rb
index 8b5bfc4dbb0..6ec4360adc2 100644
--- a/spec/lib/gitlab/etag_caching/middleware_spec.rb
+++ b/spec/lib/gitlab/etag_caching/middleware_spec.rb
@@ -99,6 +99,19 @@ describe Gitlab::EtagCaching::Middleware do
middleware.call(build_env(path, if_none_match))
end
+
+ context 'when polling is disabled' do
+ before do
+ allow(Gitlab::PollingInterval).to receive(:polling_enabled?).
+ and_return(false)
+ end
+
+ it 'returns status code 429' do
+ status, _, _ = middleware.call(build_env(path, if_none_match))
+
+ expect(status).to eq 429
+ end
+ end
end
context 'when If-None-Match header does not match ETag in store' do
diff --git a/spec/lib/gitlab/polling_interval_spec.rb b/spec/lib/gitlab/polling_interval_spec.rb
new file mode 100644
index 00000000000..56c2847e26a
--- /dev/null
+++ b/spec/lib/gitlab/polling_interval_spec.rb
@@ -0,0 +1,34 @@
+require 'spec_helper'
+
+describe Gitlab::PollingInterval, lib: true do
+ let(:polling_interval) { described_class }
+
+ describe '.set_header' do
+ let(:headers) { {} }
+ let(:response) { double(headers: headers) }
+
+ context 'when polling is disabled' do
+ before do
+ stub_application_setting(polling_interval_multiplier: 0)
+ end
+
+ it 'sets value to -1' do
+ polling_interval.set_header(response, interval: 10_000)
+
+ expect(headers['Poll-Interval']).to eq(-1)
+ end
+ end
+
+ context 'when polling is enabled' do
+ before do
+ stub_application_setting(polling_interval_multiplier: 0.33333)
+ end
+
+ it 'applies modifier to base interval' do
+ polling_interval.set_header(response, interval: 10_000)
+
+ expect(headers['Poll-Interval']).to eq(3333)
+ end
+ end
+ end
+end