From 0385f9efc2a7844b0900958281296eb444b5070c Mon Sep 17 00:00:00 2001 From: "Z.J. van de Weg" Date: Wed, 17 May 2017 13:36:19 +0200 Subject: Sort environments folders when opening them Fixes gitlab-org/gitlab-ce#30814 --- app/controllers/projects/environments_controller.rb | 1 + changelogs/unreleased/zj-sort-env-folders.yml | 4 ++++ spec/controllers/projects/environments_controller_spec.rb | 5 +++++ 3 files changed, 10 insertions(+) create mode 100644 changelogs/unreleased/zj-sort-env-folders.yml diff --git a/app/controllers/projects/environments_controller.rb b/app/controllers/projects/environments_controller.rb index fd57afbd05f..efe83776834 100644 --- a/app/controllers/projects/environments_controller.rb +++ b/app/controllers/projects/environments_controller.rb @@ -31,6 +31,7 @@ class Projects::EnvironmentsController < Projects::ApplicationController def folder folder_environments = project.environments.where(environment_type: params[:id]) @environments = folder_environments.with_state(params[:scope] || :available) + .order(:name) respond_to do |format| format.html diff --git a/changelogs/unreleased/zj-sort-env-folders.yml b/changelogs/unreleased/zj-sort-env-folders.yml new file mode 100644 index 00000000000..b3ca97aef94 --- /dev/null +++ b/changelogs/unreleased/zj-sort-env-folders.yml @@ -0,0 +1,4 @@ +--- +title: Sort folder for environments +merge_request: +author: diff --git a/spec/controllers/projects/environments_controller_spec.rb b/spec/controllers/projects/environments_controller_spec.rb index c0f8c36a018..e783c60452f 100644 --- a/spec/controllers/projects/environments_controller_spec.rb +++ b/spec/controllers/projects/environments_controller_spec.rb @@ -84,6 +84,9 @@ describe Projects::EnvironmentsController do create(:environment, project: project, name: 'staging-1.0/review', state: :available) + create(:environment, project: project, + name: 'staging-1.0/preview', + state: :available) end context 'when using default format' do @@ -107,6 +110,8 @@ describe Projects::EnvironmentsController do expect(response).to be_ok expect(response).not_to render_template 'folder' expect(json_response['environments'][0]) + .to include('name' => 'staging-1.0/preview') + expect(json_response['environments'][1]) .to include('name' => 'staging-1.0/review') end end -- cgit v1.2.1 From 2792695cfa357c5d269dc3218195c33f5bc15d0a Mon Sep 17 00:00:00 2001 From: Zeger-Jan van de Weg Date: Thu, 18 May 2017 11:36:00 +0000 Subject: Make sorting difference clearer --- spec/controllers/projects/environments_controller_spec.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/spec/controllers/projects/environments_controller_spec.rb b/spec/controllers/projects/environments_controller_spec.rb index e783c60452f..93dbedae2b2 100644 --- a/spec/controllers/projects/environments_controller_spec.rb +++ b/spec/controllers/projects/environments_controller_spec.rb @@ -85,7 +85,7 @@ describe Projects::EnvironmentsController do name: 'staging-1.0/review', state: :available) create(:environment, project: project, - name: 'staging-1.0/preview', + name: 'staging-1.0/zzz', state: :available) end @@ -101,7 +101,7 @@ describe Projects::EnvironmentsController do end context 'when using JSON format' do - it 'responds with JSON' do + it 'responds with with a sorted JSON' do get :folder, namespace_id: project.namespace, project_id: project, id: 'staging-1.0', @@ -110,9 +110,9 @@ describe Projects::EnvironmentsController do expect(response).to be_ok expect(response).not_to render_template 'folder' expect(json_response['environments'][0]) - .to include('name' => 'staging-1.0/preview') - expect(json_response['environments'][1]) .to include('name' => 'staging-1.0/review') + expect(json_response['environments'][1]) + .to include('name' => 'staging-1.0/zzz') end end end -- cgit v1.2.1 From 5c83d3aff2401aa134ec1bf23013ba9e47109b48 Mon Sep 17 00:00:00 2001 From: "Z.J. van de Weg" Date: Mon, 22 May 2017 08:24:08 +0200 Subject: Improve test wording --- spec/controllers/projects/environments_controller_spec.rb | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/spec/controllers/projects/environments_controller_spec.rb b/spec/controllers/projects/environments_controller_spec.rb index 93dbedae2b2..20f99b209eb 100644 --- a/spec/controllers/projects/environments_controller_spec.rb +++ b/spec/controllers/projects/environments_controller_spec.rb @@ -1,25 +1,25 @@ require 'spec_helper' describe Projects::EnvironmentsController do - let(:user) { create(:user) } - let(:project) { create(:empty_project) } + set(:user) { create(:user) } + set(:project) { create(:empty_project) } - let(:environment) do + set(:environment) do create(:environment, name: 'production', project: project) end before do - project.team << [user, :master] + project.add_master(user) sign_in(user) end describe 'GET index' do - context 'when standardrequest has been made' do + context 'when a request for the HTML is made' do it 'responds with status code 200' do get :index, environment_params - expect(response).to be_ok + expect(response).to have_http_status(:ok) end end @@ -101,7 +101,7 @@ describe Projects::EnvironmentsController do end context 'when using JSON format' do - it 'responds with with a sorted JSON' do + it 'sorts the subfolders lexicographically' do get :folder, namespace_id: project.namespace, project_id: project, id: 'staging-1.0', -- cgit v1.2.1