summaryrefslogtreecommitdiff
path: root/spec/controllers/projects/environments_controller_spec.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-09-15 21:12:27 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2022-09-15 21:12:27 +0000
commitd657831613232fb95226c076343cd320c6573886 (patch)
tree0c33f1bd5a4f11bb8a33d2a8dc4fe6c3d6c303a9 /spec/controllers/projects/environments_controller_spec.rb
parent99aa31992d4398d35c9df4854f5fb494984a9e0b (diff)
downloadgitlab-ce-d657831613232fb95226c076343cd320c6573886.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/controllers/projects/environments_controller_spec.rb')
-rw-r--r--spec/controllers/projects/environments_controller_spec.rb125
1 files changed, 42 insertions, 83 deletions
diff --git a/spec/controllers/projects/environments_controller_spec.rb b/spec/controllers/projects/environments_controller_spec.rb
index 5ed56609265..16a43bae674 100644
--- a/spec/controllers/projects/environments_controller_spec.rb
+++ b/spec/controllers/projects/environments_controller_spec.rb
@@ -18,8 +18,27 @@ RSpec.describe Projects::EnvironmentsController do
sign_in(user)
end
- # TODO: inline when FF is removed https://gitlab.com/gitlab-org/gitlab/-/issues/372541
- shared_examples 'index examples' do
+ describe 'GET index' do
+ context 'when a request for the HTML is made' do
+ it 'responds with status code 200' do
+ get :index, params: environment_params
+
+ 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, params: environment_params
+ end
+
+ it_behaves_like 'tracking unique visits', :index do
+ let(:request_params) { environment_params }
+ let(:target_id) { 'users_visiting_environments_pages' }
+ end
+ end
+
context 'when requesting JSON response for folders' do
before do
allow_any_instance_of(Environment).to receive(:has_terminals?).and_return(true)
@@ -57,16 +76,8 @@ RSpec.describe Projects::EnvironmentsController do
it 'handles search option properly' do
get :index, params: environment_params(format: :json, search: 'staging/r')
- if Feature.enabled?(:environments_search, project)
- expect(environments.map { |env| env['name'] } ).to contain_exactly('staging/review-1', 'staging/review-2')
- expect(json_response['available_count']).to eq 2
- else
- expect(environments.map { |env| env['name'] } ).to contain_exactly('production',
- 'staging/review-1',
- 'staging/review-2')
- expect(json_response['available_count']).to eq 3
- end
-
+ expect(environments.map { |env| env['name'] } ).to contain_exactly('staging/review-1', 'staging/review-2')
+ expect(json_response['available_count']).to eq 2
expect(json_response['stopped_count']).to eq 1
end
@@ -160,40 +171,32 @@ RSpec.describe Projects::EnvironmentsController do
end
end
- describe 'GET index' do
- context 'when a request for the HTML is made' do
- it 'responds with status code 200' do
- get :index, params: environment_params
+ describe 'GET folder' do
+ context 'when using default format' do
+ it 'responds with HTML' do
+ get :folder, params: {
+ namespace_id: project.namespace,
+ project_id: project,
+ id: 'staging-1.0'
+ }
expect(response).to have_gitlab_http_status(:ok)
+ expect(response).to render_template 'folder'
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, params: environment_params
- end
+ it_behaves_like 'tracking unique visits', :folder do
+ let(:request_params) do
+ {
+ namespace_id: project.namespace,
+ project_id: project,
+ id: 'staging-1.0'
+ }
+ end
- it_behaves_like 'tracking unique visits', :index do
- let(:request_params) { environment_params }
let(:target_id) { 'users_visiting_environments_pages' }
end
end
- include_examples 'index examples'
-
- context 'when environments_search feature flag is disabled' do
- before do
- stub_feature_flags(environments_search: false)
- end
-
- include_examples 'index examples'
- end
- end
-
- # TODO: inline when FF is removed https://gitlab.com/gitlab-org/gitlab/-/issues/372541
- shared_examples 'folder examples' do
context 'when using JSON format' do
before do
create(:environment, project: project,
@@ -230,57 +233,13 @@ RSpec.describe Projects::EnvironmentsController do
search: 'staging-1.0/z'
}, format: :json)
- if Feature.enabled?(:environments_search, project)
- expect(environments.map { |env| env['name'] } ).to eq(['staging-1.0/zzz'])
- expect(json_response['available_count']).to eq 1
- else
- expect(environments.map { |env| env['name'] } ).to contain_exactly('staging-1.0/review',
- 'staging-1.0/zzz')
- expect(json_response['available_count']).to eq 2
- end
-
+ expect(environments.map { |env| env['name'] } ).to eq(['staging-1.0/zzz'])
+ expect(json_response['available_count']).to eq 1
expect(json_response['stopped_count']).to eq 0
end
end
end
- describe 'GET folder' do
- context 'when using default format' do
- it 'responds with HTML' do
- get :folder, params: {
- namespace_id: project.namespace,
- project_id: project,
- id: 'staging-1.0'
- }
-
- expect(response).to be_ok
- expect(response).to render_template 'folder'
- end
-
- it_behaves_like 'tracking unique visits', :folder do
- let(:request_params) do
- {
- namespace_id: project.namespace,
- project_id: project,
- id: 'staging-1.0'
- }
- end
-
- let(:target_id) { 'users_visiting_environments_pages' }
- end
- end
-
- include_examples 'folder examples'
-
- context 'when environments_search feature flag is disabled' do
- before do
- stub_feature_flags(environments_search: false)
- end
-
- include_examples 'folder examples'
- end
- end
-
describe 'GET show' do
context 'with valid id' do
it 'responds with a status code 200' do