summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2018-05-22 15:12:47 +0200
committerRémy Coutable <remy@rymai.me>2018-05-24 19:29:29 +0200
commit660439e968c77f216b0579250d0042d62ea4cb95 (patch)
tree0a6792ecfc093f33d24cd588c8db764ed20804d8
parent981b8ab7bd72c8500f8cc7f64c9eeff36f454851 (diff)
downloadgitlab-ce-660439e968c77f216b0579250d0042d62ea4cb95.tar.gz
Reduce CE/EE diff in spec/controllers/projects/environments_controller_spec.rb
Signed-off-by: Rémy Coutable <remy@rymai.me>
-rw-r--r--app/controllers/projects/environments_controller.rb10
-rw-r--r--spec/controllers/projects/environments_controller_spec.rb7
2 files changed, 17 insertions, 0 deletions
diff --git a/app/controllers/projects/environments_controller.rb b/app/controllers/projects/environments_controller.rb
index 52d528e816e..0821362f5df 100644
--- a/app/controllers/projects/environments_controller.rb
+++ b/app/controllers/projects/environments_controller.rb
@@ -7,6 +7,7 @@ class Projects::EnvironmentsController < Projects::ApplicationController
before_action :authorize_admin_environment!, only: [:terminal, :terminal_websocket_authorize]
before_action :environment, only: [:show, :edit, :update, :stop, :terminal, :terminal_websocket_authorize, :metrics]
before_action :verify_api_request!, only: :terminal_websocket_authorize
+ before_action :expire_etag_cache, only: [:index]
def index
@environments = project.environments
@@ -148,6 +149,15 @@ class Projects::EnvironmentsController < Projects::ApplicationController
Gitlab::Workhorse.verify_api_request!(request.headers)
end
+ def expire_etag_cache
+ return if request.format.json?
+
+ # this forces to reload json content
+ Gitlab::EtagCaching::Store.new.tap do |store|
+ store.touch(project_environments_path(project, format: :json))
+ end
+ end
+
def environment_params
params.require(:environment).permit(:name, :external_url)
end
diff --git a/spec/controllers/projects/environments_controller_spec.rb b/spec/controllers/projects/environments_controller_spec.rb
index ff9ab53d8c3..47d4942acbd 100644
--- a/spec/controllers/projects/environments_controller_spec.rb
+++ b/spec/controllers/projects/environments_controller_spec.rb
@@ -21,6 +21,13 @@ describe Projects::EnvironmentsController do
expect(response).to have_gitlab_http_status(:ok)
end
+
+ it 'expires etag cache to force reload environments list' do
+ expect_any_instance_of(Gitlab::EtagCaching::Store)
+ .to receive(:touch).with(project_environments_path(project, format: :json))
+
+ get :index, environment_params
+ end
end
context 'when requesting JSON response for folders' do