diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2023-01-18 19:00:14 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2023-01-18 19:00:14 +0000 |
commit | 05f0ebba3a2c8ddf39e436f412dc2ab5bf1353b2 (patch) | |
tree | 11d0f2a6ec31c7793c184106cedc2ded3d9a2cc5 /spec/controllers/projects/environments_controller_spec.rb | |
parent | ec73467c23693d0db63a797d10194da9e72a74af (diff) | |
download | gitlab-ce-05f0ebba3a2c8ddf39e436f412dc2ab5bf1353b2.tar.gz |
Add latest changes from gitlab-org/gitlab@15-8-stable-eev15.8.0-rc42
Diffstat (limited to 'spec/controllers/projects/environments_controller_spec.rb')
-rw-r--r-- | spec/controllers/projects/environments_controller_spec.rb | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/spec/controllers/projects/environments_controller_spec.rb b/spec/controllers/projects/environments_controller_spec.rb index 2334521b8a8..dddefbac163 100644 --- a/spec/controllers/projects/environments_controller_spec.rb +++ b/spec/controllers/projects/environments_controller_spec.rb @@ -998,6 +998,94 @@ RSpec.describe Projects::EnvironmentsController do end end + describe '#append_info_to_payload' do + let(:search_param) { 'my search param' } + + context 'when search_environment_logging feature is disabled' do + before do + stub_feature_flags(environments_search_logging: false) + end + + it 'does not log search params in meta.environment.search' do + expect(controller).to receive(:append_info_to_payload).and_wrap_original do |method, payload| + method.call(payload) + + expect(payload[:metadata]).not_to have_key('meta.environment.search') + expect(payload[:action]).to eq("search") + expect(payload[:controller]).to eq("Projects::EnvironmentsController") + end + + get :search, params: environment_params(format: :json, search: search_param) + end + + it 'logs params correctly when search params are missing' do + expect(controller).to receive(:append_info_to_payload).and_wrap_original do |method, payload| + method.call(payload) + + expect(payload[:metadata]).not_to have_key('meta.environment.search') + expect(payload[:action]).to eq("search") + expect(payload[:controller]).to eq("Projects::EnvironmentsController") + end + + get :search, params: environment_params(format: :json) + end + + it 'logs params correctly when search params is empty string' do + expect(controller).to receive(:append_info_to_payload).and_wrap_original do |method, payload| + method.call(payload) + + expect(payload[:metadata]).not_to have_key('meta.environment.search') + expect(payload[:action]).to eq("search") + expect(payload[:controller]).to eq("Projects::EnvironmentsController") + end + + get :search, params: environment_params(format: :json, search: "") + end + end + + context 'when search_environment_logging feature is enabled' do + before do + stub_feature_flags(environments_search_logging: true) + end + + it 'logs search params in meta.environment.search' do + expect(controller).to receive(:append_info_to_payload).and_wrap_original do |method, payload| + method.call(payload) + + expect(payload[:metadata]['meta.environment.search']).to eq(search_param) + expect(payload[:action]).to eq("search") + expect(payload[:controller]).to eq("Projects::EnvironmentsController") + end + + get :search, params: environment_params(format: :json, search: search_param) + end + + it 'logs params correctly when search params are missing' do + expect(controller).to receive(:append_info_to_payload).and_wrap_original do |method, payload| + method.call(payload) + + expect(payload[:metadata]).not_to have_key('meta.environment.search') + expect(payload[:action]).to eq("search") + expect(payload[:controller]).to eq("Projects::EnvironmentsController") + end + + get :search, params: environment_params(format: :json) + end + + it 'logs params correctly when search params is empty string' do + expect(controller).to receive(:append_info_to_payload).and_wrap_original do |method, payload| + method.call(payload) + + expect(payload[:metadata]).not_to have_key('meta.environment.search') + expect(payload[:action]).to eq("search") + expect(payload[:controller]).to eq("Projects::EnvironmentsController") + end + + get :search, params: environment_params(format: :json, search: "") + end + end + end + def environment_params(opts = {}) opts.reverse_merge(namespace_id: project.namespace, project_id: project, |