summaryrefslogtreecommitdiff
path: root/qa/qa/specs/features/shared_contexts
diff options
context:
space:
mode:
Diffstat (limited to 'qa/qa/specs/features/shared_contexts')
-rw-r--r--qa/qa/specs/features/shared_contexts/advanced_search_shared_context.rb25
-rw-r--r--qa/qa/specs/features/shared_contexts/import/github_import_shared_context.rb36
-rw-r--r--qa/qa/specs/features/shared_contexts/import/gitlab_group_migration_common.rb13
-rw-r--r--qa/qa/specs/features/shared_contexts/merge_train_spec_with_user_prep.rb2
-rw-r--r--qa/qa/specs/features/shared_contexts/packages_registry_shared_context.rb4
-rw-r--r--qa/qa/specs/features/shared_contexts/variable_inheritance_shared_context.rb4
6 files changed, 78 insertions, 6 deletions
diff --git a/qa/qa/specs/features/shared_contexts/advanced_search_shared_context.rb b/qa/qa/specs/features/shared_contexts/advanced_search_shared_context.rb
new file mode 100644
index 00000000000..c6836d11803
--- /dev/null
+++ b/qa/qa/specs/features/shared_contexts/advanced_search_shared_context.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+module QA
+ RSpec.shared_context 'advanced search active' do
+ let!(:advanced_search_on) { check_advanced_search_status }
+
+ before do
+ QA::EE::Resource::Settings::Elasticsearch.fabricate_via_api! unless advanced_search_on
+ end
+
+ after do
+ Runtime::Search.disable_elasticsearch(api_client) if !advanced_search_on && !api_client.nil?
+ end
+
+ # TODO: convert this method to use the API instead of the UI once the functionality exists
+ # https://gitlab.com/gitlab-org/gitlab/-/issues/382849
+ def check_advanced_search_status
+ Flow::Login.sign_in
+ QA::Page::Main::Menu.perform do |menu|
+ menu.search_for('lorem ipsum')
+ end
+ page.has_text?('Advanced search is enabled')
+ end
+ end
+end
diff --git a/qa/qa/specs/features/shared_contexts/import/github_import_shared_context.rb b/qa/qa/specs/features/shared_contexts/import/github_import_shared_context.rb
index 27d94b04cde..481a09f601b 100644
--- a/qa/qa/specs/features/shared_contexts/import/github_import_shared_context.rb
+++ b/qa/qa/specs/features/shared_contexts/import/github_import_shared_context.rb
@@ -35,8 +35,44 @@ module QA
end
end
+ let(:smocker_host) { ENV["QA_SMOCKER_HOST"] }
+ let(:smocker) do
+ Vendor::Smocker::SmockerApi.new(
+ host: smocker_host,
+ public_port: 443,
+ admin_port: 8081,
+ tls: true
+ )
+ end
+
+ let(:mocks_path) { File.join(Runtime::Path.fixtures_path, "mocks", "import") }
+
before do
+ set_mocks
group.add_member(user, Resource::Members::AccessLevel::MAINTAINER)
end
+
+ def expect_project_import_finished_successfully
+ imported_project.reload! # import the project
+
+ status = nil
+ Support::Retrier.retry_until(max_duration: 240, sleep_interval: 1, raise_on_failure: false) do
+ status = imported_project.project_import_status[:import_status]
+ %w[finished failed].include?(status)
+ end
+
+ # finished status means success, all other statuses are considered to fail the test
+ expect(status).to eq('finished'), "Expected import to finish successfully, but status was: #{status}"
+ end
+
+ # Setup github mocked responses if mock server host is present
+ #
+ # @return [void]
+ def set_mocks
+ return Runtime::Logger.warn("Mock host is not set, skipping github response setup") unless smocker_host
+
+ smocker.reset
+ smocker.register(File.read(File.join(mocks_path, "github.yml")))
+ end
end
end
diff --git a/qa/qa/specs/features/shared_contexts/import/gitlab_group_migration_common.rb b/qa/qa/specs/features/shared_contexts/import/gitlab_group_migration_common.rb
index e1d762f41cb..853f427db12 100644
--- a/qa/qa/specs/features/shared_contexts/import/gitlab_group_migration_common.rb
+++ b/qa/qa/specs/features/shared_contexts/import/gitlab_group_migration_common.rb
@@ -19,6 +19,9 @@ module QA
is_new_session: false
)
end
+ let!(:source_bulk_import_enabled) do
+ Runtime::ApplicationSettings.get_application_settings(api_client: source_admin_api_client)[:bulk_import_enabled]
+ end
let!(:source_admin_user) do
Resource::User.fabricate_via_api! do |usr|
usr.api_client = source_admin_api_client
@@ -36,6 +39,9 @@ module QA
# target instance objects
#
let!(:admin_api_client) { Runtime::API::Client.as_admin }
+ let!(:target_bulk_import_enabled) do
+ Runtime::ApplicationSettings.get_application_settings(api_client: admin_api_client)[:bulk_import_enabled]
+ end
let!(:admin_user) do
Resource::User.fabricate_via_api! do |usr|
usr.api_client = admin_api_client
@@ -87,7 +93,8 @@ module QA
end
before do
- Runtime::ApplicationSettings.set_application_settings(bulk_import_enabled: true)
+ enable_bulk_import(source_admin_api_client) if source_admin_user && !source_bulk_import_enabled
+ enable_bulk_import(admin_api_client) unless target_bulk_import_enabled
target_sandbox.add_member(user, Resource::Members::AccessLevel::OWNER)
end
@@ -102,5 +109,9 @@ module QA
# make sure cleanup runs last
cleanup!
end
+
+ def enable_bulk_import(api_client)
+ Runtime::ApplicationSettings.set_application_settings(api_client: api_client, bulk_import_enabled: true)
+ end
end
end
diff --git a/qa/qa/specs/features/shared_contexts/merge_train_spec_with_user_prep.rb b/qa/qa/specs/features/shared_contexts/merge_train_spec_with_user_prep.rb
index 9d1a37cb0b8..8af5dc5463e 100644
--- a/qa/qa/specs/features/shared_contexts/merge_train_spec_with_user_prep.rb
+++ b/qa/qa/specs/features/shared_contexts/merge_train_spec_with_user_prep.rb
@@ -20,7 +20,7 @@ module QA
end
let!(:runner) do
- Resource::Runner.fabricate! do |runner|
+ Resource::ProjectRunner.fabricate! do |runner|
runner.project = project
runner.name = executor
runner.tags = [executor]
diff --git a/qa/qa/specs/features/shared_contexts/packages_registry_shared_context.rb b/qa/qa/specs/features/shared_contexts/packages_registry_shared_context.rb
index 73a6c2bd99e..a611a801b11 100644
--- a/qa/qa/specs/features/shared_contexts/packages_registry_shared_context.rb
+++ b/qa/qa/specs/features/shared_contexts/packages_registry_shared_context.rb
@@ -28,11 +28,11 @@ module QA
end
let(:runner) do
- Resource::Runner.fabricate! do |runner|
+ Resource::GroupRunner.fabricate! do |runner|
runner.name = "qa-runner-#{Time.now.to_i}"
runner.tags = ["runner-for-#{package_project.group.name}"]
runner.executor = :docker
- runner.token = package_project.group.reload!.runners_token
+ runner.group = package_project.group
end
end
diff --git a/qa/qa/specs/features/shared_contexts/variable_inheritance_shared_context.rb b/qa/qa/specs/features/shared_contexts/variable_inheritance_shared_context.rb
index 45caeced35c..2219031e9c6 100644
--- a/qa/qa/specs/features/shared_contexts/variable_inheritance_shared_context.rb
+++ b/qa/qa/specs/features/shared_contexts/variable_inheritance_shared_context.rb
@@ -37,8 +37,8 @@ module QA
end
let!(:runner) do
- Resource::Runner.fabricate! do |runner|
- runner.token = group.reload!.runners_token
+ Resource::GroupRunner.fabricate! do |runner|
+ runner.group = group
runner.name = random_string
runner.tags = [random_string]
end