diff options
author | Mark Lapierre <mlapierre@gitlab.com> | 2019-02-19 16:06:38 +0000 |
---|---|---|
committer | Mark Lapierre <mlapierre@gitlab.com> | 2019-02-19 16:06:38 +0000 |
commit | 459276846372d8309220a5667cb4389dcfc66281 (patch) | |
tree | b301bafabc0a636fa459e251b933a8fd8ab3eb9e /qa | |
parent | cd1a907b770136d39ee001bcf7ce4b46a108374b (diff) | |
parent | 8cb772bc414269e8c0dccae7c38fab0c58927040 (diff) | |
download | gitlab-ce-459276846372d8309220a5667cb4389dcfc66281.tar.gz |
Merge branch 'fix-auto-devops-qa-domain-wait-for-build' into 'master'
Fixes for Auto DevOps QA specs
See merge request gitlab-org/gitlab-ce!25275
Diffstat (limited to 'qa')
5 files changed, 49 insertions, 19 deletions
diff --git a/qa/qa/page/project/job/show.rb b/qa/qa/page/project/job/show.rb index 49c676c01f2..d9e789d7793 100644 --- a/qa/qa/page/project/job/show.rb +++ b/qa/qa/page/project/job/show.rb @@ -20,15 +20,19 @@ module QA::Page element :pipeline_path end - def completed? - COMPLETED_STATUSES.include?(status_badge) + def loaded?(wait: 60) + has_element?(:build_trace, wait: wait) end - def successful?(timeout: 60) + # Reminder: You should check #loaded? first + def completed?(timeout: 60) wait(reload: false, max: timeout) do - completed? && !trace_loading? + COMPLETED_STATUSES.include?(status_badge) end + end + # Reminder: You should check #completed? and #loaded? first + def successful? status_badge == PASSED_STATUS end diff --git a/qa/qa/page/project/operations/kubernetes/show.rb b/qa/qa/page/project/operations/kubernetes/show.rb index 98ac5c32d91..d4e1679b6bf 100644 --- a/qa/qa/page/project/operations/kubernetes/show.rb +++ b/qa/qa/page/project/operations/kubernetes/show.rb @@ -14,6 +14,11 @@ module QA element :ingress_ip_address, 'id="ingress-ip-address"' # rubocop:disable QA/ElementWithPattern end + view 'app/views/clusters/clusters/_form.html.haml' do + element :base_domain + element :save_domain + end + def install!(application_name) within(".js-cluster-application-row-#{application_name}") do page.has_button?('Install', wait: 30) @@ -32,6 +37,14 @@ module QA # ip address is assigned for the ingress controller page.find('#ingress-ip-address', wait: 1200).value end + + def set_domain(domain) + fill_element :base_domain, domain + end + + def save_domain + click_element :save_domain + end end end end diff --git a/qa/qa/resource/kubernetes_cluster.rb b/qa/qa/resource/kubernetes_cluster.rb index 986b31da528..93a06be6818 100644 --- a/qa/qa/resource/kubernetes_cluster.rb +++ b/qa/qa/resource/kubernetes_cluster.rb @@ -12,10 +12,6 @@ module QA Page::Project::Operations::Kubernetes::Show.perform(&:ingress_ip) end - attribute :domain do - "#{ingress_ip}.nip.io" - end - def fabricate! @project.visit! @@ -53,6 +49,12 @@ module QA page.await_installed(:ingress) if @install_ingress page.await_installed(:prometheus) if @install_prometheus page.await_installed(:runner) if @install_runner + + if @install_ingress + populate(:ingress_ip) + page.set_domain("#{ingress_ip}.nip.io") + page.save_domain + end end end end diff --git a/qa/qa/specs/features/browser_ui/6_release/deploy_key/clone_using_deploy_key_spec.rb b/qa/qa/specs/features/browser_ui/6_release/deploy_key/clone_using_deploy_key_spec.rb index 2375aa4ce91..2f885b330d3 100644 --- a/qa/qa/specs/features/browser_ui/6_release/deploy_key/clone_using_deploy_key_spec.rb +++ b/qa/qa/specs/features/browser_ui/6_release/deploy_key/clone_using_deploy_key_spec.rb @@ -95,7 +95,9 @@ module QA Page::Project::Pipeline::Show.perform(&:go_to_first_job) Page::Project::Job::Show.perform do |job| - expect(job).to be_successful, "Job status did not become \"passed\"." + expect(job).to be_loaded + expect(job).to be_completed + expect(job).to be_successful expect(job.output).to include(sha1sum) end end diff --git a/qa/qa/specs/features/browser_ui/7_configure/auto_devops/create_project_with_auto_devops_spec.rb b/qa/qa/specs/features/browser_ui/7_configure/auto_devops/create_project_with_auto_devops_spec.rb index 8cd353fa250..bb333561f28 100644 --- a/qa/qa/specs/features/browser_ui/7_configure/auto_devops/create_project_with_auto_devops_spec.rb +++ b/qa/qa/specs/features/browser_ui/7_configure/auto_devops/create_project_with_auto_devops_spec.rb @@ -40,7 +40,7 @@ module QA # Create and connect K8s cluster @cluster = Service::KubernetesCluster.new(rbac: rbac).create! - kubernetes_cluster = Resource::KubernetesCluster.fabricate! do |cluster| + Resource::KubernetesCluster.fabricate! do |cluster| cluster.project = @project cluster.cluster = @cluster cluster.install_helm_tiller = true @@ -49,14 +49,11 @@ module QA cluster.install_runner = true end - kubernetes_cluster.populate(:ingress_ip) @project.visit! Page::Project::Menu.perform(&:click_ci_cd_settings) Page::Project::Settings::CICD.perform do |p| p.enable_auto_devops end - - kubernetes_cluster.populate(:domain) end after(:all) do @@ -76,7 +73,9 @@ module QA pipeline.go_to_job('build') end Page::Project::Job::Show.perform do |job| - expect(job).to be_sucessful(timeout: 600), "Job did not pass" + expect(job).to be_loaded + expect(job).to be_completed(timeout: 600) + expect(job).to be_successful job.click_element(:pipeline_path) end @@ -85,7 +84,9 @@ module QA pipeline.go_to_job('test') end Page::Project::Job::Show.perform do |job| - expect(job).to be_sucessful(timeout: 600), "Job did not pass" + expect(job).to be_loaded + expect(job).to be_completed(timeout: 600) + expect(job).to be_successful job.click_element(:pipeline_path) end @@ -94,7 +95,9 @@ module QA pipeline.go_to_job('production') end Page::Project::Job::Show.perform do |job| - expect(job).to be_sucessful(timeout: 1200), "Job did not pass" + expect(job).to be_loaded + expect(job).to be_completed(timeout: 1200) + expect(job).to be_successful job.click_element(:pipeline_path) end @@ -137,7 +140,9 @@ module QA pipeline.go_to_job('build') end Page::Project::Job::Show.perform do |job| - expect(job).to be_sucessful(timeout: 600), "Job did not pass" + expect(job).to be_loaded + expect(job).to be_completed(timeout: 600) + expect(job).to be_successful job.click_element(:pipeline_path) end @@ -146,7 +151,9 @@ module QA pipeline.go_to_job('test') end Page::Project::Job::Show.perform do |job| - expect(job).to be_sucessful(timeout: 600), "Job did not pass" + expect(job).to be_loaded + expect(job).to be_completed(timeout: 600) + expect(job).to be_successful job.click_element(:pipeline_path) end @@ -155,7 +162,9 @@ module QA pipeline.go_to_job('production') end Page::Project::Job::Show.perform do |job| - expect(job).to be_sucessful(timeout: 1200), "Job did not pass" + expect(job).to be_loaded + expect(job).to be_completed(timeout: 1200) + expect(job).to be_successful job.click_element(:pipeline_path) end |