diff options
Diffstat (limited to 'spec/controllers/projects/environments_controller_spec.rb')
-rw-r--r-- | spec/controllers/projects/environments_controller_spec.rb | 131 |
1 files changed, 12 insertions, 119 deletions
diff --git a/spec/controllers/projects/environments_controller_spec.rb b/spec/controllers/projects/environments_controller_spec.rb index 169fed1ab17..cbf632bfdb0 100644 --- a/spec/controllers/projects/environments_controller_spec.rb +++ b/spec/controllers/projects/environments_controller_spec.rb @@ -44,17 +44,9 @@ RSpec.describe Projects::EnvironmentsController, feature_category: :continuous_d allow_any_instance_of(Environment).to receive(:has_terminals?).and_return(true) allow_any_instance_of(Environment).to receive(:rollout_status).and_return(kube_deployment_rollout_status) - create(:environment, project: project, - name: 'staging/review-1', - state: :available) - - create(:environment, project: project, - name: 'staging/review-2', - state: :available) - - create(:environment, project: project, - name: 'staging/review-3', - state: :stopped) + create(:environment, project: project, name: 'staging/review-1', state: :available) + create(:environment, project: project, name: 'staging/review-2', state: :available) + create(:environment, project: project, name: 'staging/review-3', state: :stopped) end let(:environments) { json_response['environments'] } @@ -84,9 +76,7 @@ RSpec.describe Projects::EnvironmentsController, feature_category: :continuous_d it 'ignores search option if is shorter than a minimum' do get :index, params: environment_params(format: :json, search: 'st') - expect(environments.map { |env| env['name'] }).to contain_exactly('production', - 'staging/review-1', - 'staging/review-2') + expect(environments.map { |env| env['name'] }).to contain_exactly('production', 'staging/review-1', 'staging/review-2') expect(json_response['available_count']).to eq 3 expect(json_response['stopped_count']).to eq 1 end @@ -96,9 +86,7 @@ RSpec.describe Projects::EnvironmentsController, feature_category: :continuous_d get :index, params: environment_params(format: :json, search: 'review') - expect(environments.map { |env| env['name'] }).to contain_exactly('review-app', - 'staging/review-1', - 'staging/review-2') + expect(environments.map { |env| env['name'] }).to contain_exactly('review-app', 'staging/review-1', 'staging/review-2') expect(json_response['available_count']).to eq 3 expect(json_response['stopped_count']).to eq 1 end @@ -245,23 +233,18 @@ RSpec.describe Projects::EnvironmentsController, feature_category: :continuous_d context 'when using JSON format' do before do - create(:environment, project: project, - name: 'staging-1.0/review', - state: :available) - create(:environment, project: project, - name: 'staging-1.0/zzz', - state: :available) + create(:environment, project: project, name: 'staging-1.0/review', state: :available) + create(:environment, project: project, name: 'staging-1.0/zzz', state: :available) end let(:environments) { json_response['environments'] } it 'sorts the subfolders lexicographically' do get :folder, params: { - namespace_id: project.namespace, - project_id: project, - id: 'staging-1.0' - }, - format: :json + namespace_id: project.namespace, + project_id: project, + id: 'staging-1.0' + }, format: :json expect(response).to be_ok expect(response).not_to render_template 'folder' @@ -1016,98 +999,8 @@ RSpec.describe Projects::EnvironmentsController, feature_category: :continuous_d 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, - id: environment.id) + opts.reverse_merge(namespace_id: project.namespace, project_id: project, id: environment.id) end def additional_metrics(opts = {}) |