summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Lapierre <mlapierre@gitlab.com>2019-02-19 16:06:38 +0000
committerMark Lapierre <mlapierre@gitlab.com>2019-02-19 16:06:38 +0000
commit459276846372d8309220a5667cb4389dcfc66281 (patch)
treeb301bafabc0a636fa459e251b933a8fd8ab3eb9e
parentcd1a907b770136d39ee001bcf7ce4b46a108374b (diff)
parent8cb772bc414269e8c0dccae7c38fab0c58927040 (diff)
downloadgitlab-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
-rw-r--r--app/views/clusters/clusters/_form.html.haml4
-rw-r--r--qa/qa/page/project/job/show.rb12
-rw-r--r--qa/qa/page/project/operations/kubernetes/show.rb13
-rw-r--r--qa/qa/resource/kubernetes_cluster.rb10
-rw-r--r--qa/qa/specs/features/browser_ui/6_release/deploy_key/clone_using_deploy_key_spec.rb4
-rw-r--r--qa/qa/specs/features/browser_ui/7_configure/auto_devops/create_project_with_auto_devops_spec.rb29
6 files changed, 51 insertions, 21 deletions
diff --git a/app/views/clusters/clusters/_form.html.haml b/app/views/clusters/clusters/_form.html.haml
index 7acd9ce0562..9fb91a39387 100644
--- a/app/views/clusters/clusters/_form.html.haml
+++ b/app/views/clusters/clusters/_form.html.haml
@@ -28,7 +28,7 @@
.form-group
%h5= s_('ClusterIntegration|Base domain')
- = field.text_field :base_domain, class: 'col-md-6 form-control js-select-on-focus'
+ = field.text_field :base_domain, class: 'col-md-6 form-control js-select-on-focus qa-base-domain'
.form-text.text-muted
- auto_devops_url = help_page_path('topics/autodevops/index')
- auto_devops_start = '<a href="%{url}" target="_blank" rel="noopener noreferrer">'.html_safe % { url: auto_devops_url }
@@ -43,4 +43,4 @@
- if can?(current_user, :update_cluster, @cluster)
.form-group
- = field.submit _('Save changes'), class: 'btn btn-success'
+ = field.submit _('Save changes'), class: 'btn btn-success qa-save-domain'
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