summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKamil Trzcinski <ayufan@ayufan.eu>2016-10-17 22:01:56 +0200
committerKamil Trzcinski <ayufan@ayufan.eu>2016-10-17 22:01:56 +0200
commit34e19b9b8dccd7cd2e6c2bb408e75c70f3b6f3b9 (patch)
tree035f87e70287d47e10361b2fec44e566d238f7e8
parente9880722076081df1576a3fb01e2c30feb6208ba (diff)
downloadgitlab-ce-34e19b9b8dccd7cd2e6c2bb408e75c70f3b6f3b9.tar.gz
Fix specs
-rw-r--r--app/controllers/projects/environments_controller.rb2
-rw-r--r--spec/features/environments_spec.rb42
-rw-r--r--spec/features/merge_requests/merge_when_build_succeeds_spec.rb9
-rw-r--r--spec/features/merge_requests/widget_deployments_spec.rb47
4 files changed, 43 insertions, 57 deletions
diff --git a/app/controllers/projects/environments_controller.rb b/app/controllers/projects/environments_controller.rb
index 02a659d3894..e243253c5f1 100644
--- a/app/controllers/projects/environments_controller.rb
+++ b/app/controllers/projects/environments_controller.rb
@@ -1,7 +1,7 @@
class Projects::EnvironmentsController < Projects::ApplicationController
layout 'project'
before_action :authorize_read_environment!
- before_action :authorize_create_environment!, only: [:new, :create, :stop]
+ before_action :authorize_create_environment!, only: [:new, :create]
before_action :authorize_create_deployment!, only: [:stop]
before_action :authorize_update_environment!, only: [:edit, :update]
before_action :environment, only: [:show, :edit, :update, :stop]
diff --git a/spec/features/environments_spec.rb b/spec/features/environments_spec.rb
index 1b51bf9ef66..16c44e42f63 100644
--- a/spec/features/environments_spec.rb
+++ b/spec/features/environments_spec.rb
@@ -119,7 +119,7 @@ feature 'Environments', feature: true do
expect(page).to have_selector('.close-env-link')
end
- scenario 'does allow to stop environment' do
+ scenario 'starts build when stop button clicked' do
first('.close-env-link').click
expect(page).to have_content('close_app')
@@ -217,7 +217,7 @@ feature 'Environments', feature: true do
expect(page).to have_link('Stop')
end
- scenario 'does allow to stop environment' do
+ scenario ' scenario 'does allow to stop environment' do' do
click_link('Stop')
expect(page).to have_content('close_app')
@@ -277,42 +277,4 @@ feature 'Environments', feature: true do
end
end
end
-
- describe 'when deleting existing environment' do
- given(:environment) { create(:environment, project: project) }
-
- before do
- visit namespace_project_environment_path(project.namespace, project, environment)
- end
-
- context 'when logged as master' do
- given(:role) { :master }
-
- scenario 'does not have a Close link' do
- expect(page).not_to have_link('Close')
- end
-
- context 'when environment is opened and can be closed' do
- let(:project) { create(:project) }
- let(:environment) { create(:environment, project: project) }
-
- let!(:deployment) do
- create(:deployment, environment: environment, sha: project.commit('master').id)
- end
-
- scenario 'does have a Close link' do
- # TODO: Add missing validation. In order to have Close link
- # this must be true: last_deployment.try(:close_action)
- end
- end
- end
-
- context 'when logged as developer' do
- given(:role) { :developer }
-
- scenario 'does not have a Close link' do
- expect(page).not_to have_link('Close')
- end
- end
- end
end
diff --git a/spec/features/merge_requests/merge_when_build_succeeds_spec.rb b/spec/features/merge_requests/merge_when_build_succeeds_spec.rb
index 5d6ce6e1830..c3c3ab33872 100644
--- a/spec/features/merge_requests/merge_when_build_succeeds_spec.rb
+++ b/spec/features/merge_requests/merge_when_build_succeeds_spec.rb
@@ -101,15 +101,6 @@ feature 'Merge When Build Succeeds', feature: true, js: true do
expect(page).not_to have_link "Merge When Build Succeeds"
end
end
-
- context 'Has Environment' do
- let(:environment) { create(:environment, project: project) }
-
- it 'does show link to close the environment' do
- # TODO add test to verify if the button is visible when this condition
- # is met: if environment.closeable?
- end
- end
def visit_merge_request(merge_request)
visit namespace_project_merge_request_path(merge_request.project.namespace, merge_request.project, merge_request)
diff --git a/spec/features/merge_requests/widget_deployments_spec.rb b/spec/features/merge_requests/widget_deployments_spec.rb
index 8e23ec50d4a..0c8ee844b47 100644
--- a/spec/features/merge_requests/widget_deployments_spec.rb
+++ b/spec/features/merge_requests/widget_deployments_spec.rb
@@ -4,23 +4,56 @@ feature 'Widget Deployments Header', feature: true, js: true do
include WaitForAjax
describe 'when deployed to an environment' do
- let(:project) { merge_request.target_project }
- let(:merge_request) { create(:merge_request, :merged) }
- let(:environment) { create(:environment, project: project) }
- let!(:deployment) do
+ given(:user) { create(:user) }
+ given(:project) { merge_request.target_project }
+ given(:merge_request) { create(:merge_request, :merged) }
+ given(:environment) { create(:environment, project: project) }
+ given(:role) { :developer }
+ given!(:deployment) do
create(:deployment, environment: environment, sha: project.commit('master').id)
end
+ given!(:manual) { }
- before do
- login_as :admin
+ background do
+ login_as(user)
+ project.team << [user, role]
visit namespace_project_merge_request_path(project.namespace, project, merge_request)
end
- it 'displays that the environment is deployed' do
+ scenario 'displays that the environment is deployed' do
wait_for_ajax
expect(page).to have_content("Deployed to #{environment.name}")
expect(find('.ci_widget > span > span')['data-title']).to eq(deployment.created_at.to_time.in_time_zone.to_s(:medium))
end
+
+ context 'with stop action' do
+ given(:pipeline) { create(:ci_pipeline, project: project) }
+ given(:build) { create(:ci_build, pipeline: pipeline) }
+ given(:manual) { create(:ci_build, :manual, pipeline: pipeline, name: 'close_app') }
+ given(:deployment) { create(:deployment, environment: environment, deployable: build, on_stop: 'close_app') }
+
+ background do
+ wait_for_ajax
+ end
+
+ scenario 'does show stop button' do
+ expect(page).to have_link('Stop environment')
+ end
+
+ scenario 'does start build when stop button clicked' do
+ click_link('Stop environment')
+
+ expect(page).to have_content('close_app')
+ end
+
+ context 'for reporter' do
+ given(:role) { :reporter }
+
+ scenario 'does not show stop button' do
+ expect(page).not_to have_link('Stop environment')
+ end
+ end
+ end
end
end