diff options
Diffstat (limited to 'spec/features/auto_deploy_spec.rb')
-rw-r--r-- | spec/features/auto_deploy_spec.rb | 88 |
1 files changed, 55 insertions, 33 deletions
diff --git a/spec/features/auto_deploy_spec.rb b/spec/features/auto_deploy_spec.rb index dff6f96b663..7a395f62511 100644 --- a/spec/features/auto_deploy_spec.rb +++ b/spec/features/auto_deploy_spec.rb @@ -4,52 +4,74 @@ describe 'Auto deploy' do let(:user) { create(:user) } let(:project) { create(:project, :repository) } - before do - create :kubernetes_service, project: project - project.team << [user, :master] - sign_in user - end + shared_examples 'same behavior between KubernetesService and Platform::Kubernetes' do + context 'when no deployment service is active' do + before do + trun_off + end - context 'when no deployment service is active' do - before do - project.kubernetes_service.update!(active: false) + it 'does not show a button to set up auto deploy' do + visit project_path(project) + expect(page).to have_no_content('Set up auto deploy') + end end - it 'does not show a button to set up auto deploy' do - visit project_path(project) - expect(page).to have_no_content('Set up auto deploy') + context 'when a deployment service is active' do + before do + trun_on + visit project_path(project) + end + + it 'shows a button to set up auto deploy' do + expect(page).to have_link('Set up auto deploy') + end + + it 'includes OpenShift as an available template', :js do + click_link 'Set up auto deploy' + click_button 'Apply a GitLab CI Yaml template' + + within '.gitlab-ci-yml-selector' do + expect(page).to have_content('OpenShift') + end + end + + it 'creates a merge request using "auto-deploy" branch', :js do + click_link 'Set up auto deploy' + click_button 'Apply a GitLab CI Yaml template' + within '.gitlab-ci-yml-selector' do + click_on 'OpenShift' + end + wait_for_requests + click_button 'Commit changes' + + expect(page).to have_content('New Merge Request From auto-deploy into master') + end end end - context 'when a deployment service is active' do + context 'when user configured kubernetes from Integration > Kubernetes' do before do - project.kubernetes_service.update!(active: true) - visit project_path(project) + create :kubernetes_service, project: project + project.team << [user, :master] + sign_in user end - it 'shows a button to set up auto deploy' do - expect(page).to have_link('Set up auto deploy') - end + let(:trun_on) { project.deployment_platform.update!(active: true) } + let(:trun_off) { project.deployment_platform.update!(active: false) } - it 'includes OpenShift as an available template', js: true do - click_link 'Set up auto deploy' - click_button 'Apply a GitLab CI Yaml template' + it_behaves_like 'same behavior between KubernetesService and Platform::Kubernetes' + end - within '.gitlab-ci-yml-selector' do - expect(page).to have_content('OpenShift') - end + context 'when user configured kubernetes from CI/CD > Clusters' do + before do + create(:cluster, :provided_by_gcp, projects: [project]) + project.team << [user, :master] + sign_in user end - it 'creates a merge request using "auto-deploy" branch', js: true do - click_link 'Set up auto deploy' - click_button 'Apply a GitLab CI Yaml template' - within '.gitlab-ci-yml-selector' do - click_on 'OpenShift' - end - wait_for_requests - click_button 'Commit changes' + let(:trun_on) { project.deployment_platform.cluster.update!(enabled: true) } + let(:trun_off) { project.deployment_platform.cluster.update!(enabled: false) } - expect(page).to have_content('New Merge Request From auto-deploy into master') - end + it_behaves_like 'same behavior between KubernetesService and Platform::Kubernetes' end end |