From ae8a461d875b29d7492230df1a3ca419707e154d Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Wed, 9 Nov 2016 13:16:21 +0100 Subject: Fix environment feature specs after changes in factory --- spec/features/environments_spec.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'spec/features/environments_spec.rb') diff --git a/spec/features/environments_spec.rb b/spec/features/environments_spec.rb index b565586ee14..10ca835e6ca 100644 --- a/spec/features/environments_spec.rb +++ b/spec/features/environments_spec.rb @@ -152,7 +152,9 @@ feature 'Environments', feature: true do end context 'with deployments' do - given(:deployment) { create(:deployment, environment: environment) } + given(:deployment) do + create(:deployment, environment: environment, deployable: nil) + end scenario 'does show deployment SHA' do expect(page).to have_link(deployment.short_sha) -- cgit v1.2.1 From a88b2d3b019cd696404d20f8042a555ec0081143 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Mon, 14 Nov 2016 14:35:29 +0100 Subject: Add feature tests for environments auto-close --- spec/features/environments_spec.rb | 42 ++++++++++++++++++++++++++++++++++---- 1 file changed, 38 insertions(+), 4 deletions(-) (limited to 'spec/features/environments_spec.rb') diff --git a/spec/features/environments_spec.rb b/spec/features/environments_spec.rb index 10ca835e6ca..8b34cb13b9d 100644 --- a/spec/features/environments_spec.rb +++ b/spec/features/environments_spec.rb @@ -6,8 +6,8 @@ feature 'Environments', feature: true do given(:role) { :developer } background do - login_as(user) project.team << [user, role] + login_as(user) end describe 'when showing environments' do @@ -16,7 +16,7 @@ feature 'Environments', feature: true do given!(:manual) { } before do - visit namespace_project_environments_path(project.namespace, project) + visit_environments(project) end context 'shows two tabs' do @@ -142,7 +142,7 @@ feature 'Environments', feature: true do given!(:manual) { } before do - visit namespace_project_environment_path(project.namespace, project, environment) + visit_environment(environment) end context 'without deployments' do @@ -234,7 +234,7 @@ feature 'Environments', feature: true do describe 'when creating a new environment' do before do - visit namespace_project_environments_path(project.namespace, project) + visit_environments(project) end context 'when logged as developer' do @@ -273,4 +273,38 @@ feature 'Environments', feature: true do end end end + + feature 'auto-close environment when branch deleted' do + given(:project) { create(:project) } + + given!(:environment) do + create(:environment, :with_review_app, project: project, + ref: 'feature') + end + + scenario 'user visits environment page' do + visit_environment(environment) + + expect(page).to have_link('Stop') + end + + scenario 'user deletes the branch with running environment' do + visit namespace_project_branches_path(project.namespace, project) + + page.within('.js-branch-feature') { find('a.btn-remove').click } + visit_environment(environment) + + expect(page).to have_no_link('Stop') + end + end + + def visit_environments(project) + visit namespace_project_environments_path(project.namespace, project) + end + + def visit_environment(environment) + visit namespace_project_environment_path(environment.project.namespace, + environment.project, + environment) + end end -- cgit v1.2.1 From 72f538731a233ab0f75e4ac139452806e2ee8cf0 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Wed, 16 Nov 2016 12:23:39 +0100 Subject: Remove redundant call to after branch delete service --- spec/features/environments_spec.rb | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'spec/features/environments_spec.rb') diff --git a/spec/features/environments_spec.rb b/spec/features/environments_spec.rb index 8b34cb13b9d..e57c355916d 100644 --- a/spec/features/environments_spec.rb +++ b/spec/features/environments_spec.rb @@ -291,11 +291,26 @@ feature 'Environments', feature: true do scenario 'user deletes the branch with running environment' do visit namespace_project_branches_path(project.namespace, project) - page.within('.js-branch-feature') { find('a.btn-remove').click } + remove_branch_with_hooks(project, user, 'feature') do + page.within('.js-branch-feature') { find('a.btn-remove').click } + end + visit_environment(environment) expect(page).to have_no_link('Stop') end + + def remove_branch_with_hooks(project, user, branch) + params = { + oldrev: project.commit(branch).id, + newrev: Gitlab::Git::BLANK_SHA, + ref: "refs/heads/#{branch}" + } + + yield + + GitPushService.new(project, user, params).execute + end end def visit_environments(project) -- cgit v1.2.1 From 3cf516cd201e0802d284d664e50dfde409047ca4 Mon Sep 17 00:00:00 2001 From: Grzegorz Bizon Date: Wed, 16 Nov 2016 12:33:04 +0100 Subject: Add comment related to workaround used in specs --- spec/features/environments_spec.rb | 3 +++ 1 file changed, 3 insertions(+) (limited to 'spec/features/environments_spec.rb') diff --git a/spec/features/environments_spec.rb b/spec/features/environments_spec.rb index e57c355916d..1fe509c2cac 100644 --- a/spec/features/environments_spec.rb +++ b/spec/features/environments_spec.rb @@ -300,6 +300,9 @@ feature 'Environments', feature: true do expect(page).to have_no_link('Stop') end + ## + # This is a workaround for problem described in #24543 + # def remove_branch_with_hooks(project, user, branch) params = { oldrev: project.commit(branch).id, -- cgit v1.2.1