diff options
Diffstat (limited to 'qa/qa/specs/features/browser_ui/8_monitor/cluster_with_prometheus.rb')
-rw-r--r-- | qa/qa/specs/features/browser_ui/8_monitor/cluster_with_prometheus.rb | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/qa/qa/specs/features/browser_ui/8_monitor/cluster_with_prometheus.rb b/qa/qa/specs/features/browser_ui/8_monitor/cluster_with_prometheus.rb new file mode 100644 index 00000000000..ed0064e8b6f --- /dev/null +++ b/qa/qa/specs/features/browser_ui/8_monitor/cluster_with_prometheus.rb @@ -0,0 +1,67 @@ +# frozen_string_literal: true + +module QA + RSpec.shared_context "cluster with Prometheus installed" do + before :all do + @cluster = Service::KubernetesCluster.new(provider_class: Service::ClusterProvider::K3s).create! + @project = Resource::Project.fabricate_via_api! do |project| + project.name = 'monitoring-project' + project.auto_devops_enabled = true + project.template_name = 'express' + end + + deploy_project_with_prometheus + end + + def deploy_project_with_prometheus + %w[ + CODE_QUALITY_DISABLED TEST_DISABLED LICENSE_MANAGEMENT_DISABLED + SAST_DISABLED DAST_DISABLED DEPENDENCY_SCANNING_DISABLED + CONTAINER_SCANNING_DISABLED PERFORMANCE_DISABLED SECRET_DETECTION_DISABLED + ].each do |key| + Resource::CiVariable.fabricate_via_api! do |resource| + resource.project = @project + resource.key = key + resource.value = '1' + resource.masked = false + end + end + + Flow::Login.sign_in + + Resource::KubernetesCluster::ProjectCluster.fabricate! do |cluster_settings| + cluster_settings.project = @project + cluster_settings.cluster = @cluster + cluster_settings.install_runner = true + cluster_settings.install_ingress = true + cluster_settings.install_prometheus = true + end + + Resource::Pipeline.fabricate_via_api! do |pipeline| + pipeline.project = @project + end.visit! + + Page::Project::Pipeline::Show.perform do |pipeline| + pipeline.click_job('build') + end + Page::Project::Job::Show.perform do |job| + expect(job).to be_successful(timeout: 600) + + job.click_element(:pipeline_path) + end + + Page::Project::Pipeline::Show.perform do |pipeline| + pipeline.click_job('production') + end + Page::Project::Job::Show.perform do |job| + expect(job).to be_successful(timeout: 1200) + + job.click_element(:pipeline_path) + end + end + + after :all do + @cluster&.remove! + end + end +end |