diff options
Diffstat (limited to 'qa/qa/specs/features/shared_contexts/import/github_import_shared_context.rb')
-rw-r--r-- | qa/qa/specs/features/shared_contexts/import/github_import_shared_context.rb | 36 |
1 files changed, 36 insertions, 0 deletions
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 |