diff options
author | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-03-04 10:34:35 +0100 |
---|---|---|
committer | Grzegorz Bizon <grzesiek.bizon@gmail.com> | 2016-03-04 10:34:35 +0100 |
commit | bf921d084e9f5e9e541d033db49c5c99eed1deb2 (patch) | |
tree | bf44876cb2894e24100b1f6087793e50c9f61e5f | |
parent | f8c4dc97230c520df077c1274fd8d88680da5242 (diff) | |
download | gitlab-ce-bf921d084e9f5e9e541d033db49c5c99eed1deb2.tar.gz |
Invalidate cache for builds badge
Closes #13982
-rw-r--r-- | app/controllers/projects/badges_controller.rb | 13 | ||||
-rw-r--r-- | features/project/badges/build.feature | 5 | ||||
-rw-r--r-- | features/steps/project/badges/build.rb | 4 |
3 files changed, 22 insertions, 0 deletions
diff --git a/app/controllers/projects/badges_controller.rb b/app/controllers/projects/badges_controller.rb index a4dd94b941c..dc9c96df003 100644 --- a/app/controllers/projects/badges_controller.rb +++ b/app/controllers/projects/badges_controller.rb @@ -1,4 +1,6 @@ class Projects::BadgesController < Projects::ApplicationController + before_action :set_no_cache + def build respond_to do |format| format.html { render_404 } @@ -8,4 +10,15 @@ class Projects::BadgesController < Projects::ApplicationController end end end + + private + + def set_no_cache + expires_now + + # Add some deprecated headers for older agents + # + response.headers['Pragma'] = 'no-cache' + response.headers['Expires'] = 'Fri, 01 Jan 1990 00:00:00 GMT' + end end diff --git a/features/project/badges/build.feature b/features/project/badges/build.feature index 9417f62d680..bcf80ed620e 100644 --- a/features/project/badges/build.feature +++ b/features/project/badges/build.feature @@ -20,3 +20,8 @@ Feature: Project Badges Build And project has another build that is running When I display builds badge for a master branch Then I should see a build running badge + + Scenario: I want to see a fresh badge on each request + Given recent build is successful + When I display builds badge for a master branch + Then I should see a badge that has not been cached diff --git a/features/steps/project/badges/build.rb b/features/steps/project/badges/build.rb index cbfc35bed65..47540f356e9 100644 --- a/features/steps/project/badges/build.rb +++ b/features/steps/project/badges/build.rb @@ -20,6 +20,10 @@ class Spinach::Features::ProjectBadgesBuild < Spinach::FeatureSteps expect_badge('running') end + step 'I should see a badge that has not been cached' do + expect(page.response_headers).to include('Cache-Control' => 'no-cache') + end + def expect_badge(status) svg = Nokogiri::XML.parse(page.body) expect(page.response_headers).to include('Content-Type' => 'image/svg+xml') |