diff options
Diffstat (limited to 'qa/spec')
-rw-r--r-- | qa/spec/spec_helper.rb | 1 | ||||
-rw-r--r-- | qa/spec/specs/allure_report_spec.rb | 6 | ||||
-rw-r--r-- | qa/spec/support/formatters/test_stats_formatter_spec.rb | 12 | ||||
-rw-r--r-- | qa/spec/support/shared_contexts/packages_registry_shared_context.rb | 63 |
4 files changed, 77 insertions, 5 deletions
diff --git a/qa/spec/spec_helper.rb b/qa/spec/spec_helper.rb index 4f0f93bf020..e25892a008f 100644 --- a/qa/spec/spec_helper.rb +++ b/qa/spec/spec_helper.rb @@ -17,6 +17,7 @@ QA::Runtime::AllureReport.configure! QA::Runtime::Scenario.from_env(QA::Runtime::Env.runtime_scenario_attributes) Dir[::File.join(__dir__, "support/shared_examples/*.rb")].sort.each { |f| require f } +Dir[::File.join(__dir__, "support/shared_contexts/*.rb")].sort.each { |f| require f } RSpec.configure do |config| config.include QA::Support::Matchers::EventuallyMatcher diff --git a/qa/spec/specs/allure_report_spec.rb b/qa/spec/specs/allure_report_spec.rb index 34116ca6cbd..03bf77039cc 100644 --- a/qa/spec/specs/allure_report_spec.rb +++ b/qa/spec/specs/allure_report_spec.rb @@ -45,14 +45,18 @@ describe QA::Runtime::AllureReport do let(:png_file) { 'png-file' } let(:html_file) { 'html-file' } let(:ci_job) { 'ee:relative 5' } + let(:versions) { { version: '14', revision: '6ced31db947' } } before do stub_env('CI', 'true') stub_env('CI_JOB_NAME', ci_job) + stub_env('GITLAB_QA_ADMIN_ACCESS_TOKEN', 'token') allow(Allure).to receive(:add_attachment) allow(File).to receive(:open).with(png_path) { png_file } allow(File).to receive(:open).with(html_path) { html_file } + allow(RestClient::Request).to receive(:execute) { double('response', code: 200, body: versions.to_json) } + allow(QA::Runtime::Scenario).to receive(:method_missing).with(:gitlab_address).and_return('gitlab.com') described_class.configure! end @@ -61,7 +65,7 @@ describe QA::Runtime::AllureReport do aggregate_failures do expect(allure_config.results_directory).to eq('tmp/allure-results') expect(allure_config.clean_results_directory).to eq(true) - expect(allure_config.environment_properties).to be_a_kind_of(Hash) + expect(allure_config.environment_properties.call).to eq(versions) expect(allure_config.environment).to eq('ee:relative') end end diff --git a/qa/spec/support/formatters/test_stats_formatter_spec.rb b/qa/spec/support/formatters/test_stats_formatter_spec.rb index fec7ec1c7c0..859d45a660b 100644 --- a/qa/spec/support/formatters/test_stats_formatter_spec.rb +++ b/qa/spec/support/formatters/test_stats_formatter_spec.rb @@ -18,12 +18,13 @@ describe QA::Support::Formatters::TestStatsFormatter do let(:quarantined) { 'false' } let(:influx_client) { instance_double('InfluxDB2::Client', create_write_api: influx_write_api) } let(:influx_write_api) { instance_double('InfluxDB2::WriteApi', write: nil) } + let(:stage) { '1_manage' } + let(:file_path) { "./qa/specs/features/#{stage}/subfolder/some_spec.rb" } let(:influx_client_args) do { bucket: 'e2e-test-stats', org: 'gitlab-qa', - use_ssl: false, precision: InfluxDB2::WritePrecision::NANOSECOND } end @@ -34,14 +35,15 @@ describe QA::Support::Formatters::TestStatsFormatter do time: DateTime.strptime(ci_timestamp).to_time, tags: { name: 'stats export spec', - file_path: './spec/support/formatters/test_stats_formatter_spec.rb', + file_path: file_path.gsub('./qa/specs/features', ''), status: :passed, reliable: reliable, quarantined: quarantined, retried: "false", job_name: "test-job", merge_request: "false", - run_type: run_type + run_type: run_type, + stage: stage }, fields: { id: './spec/support/formatters/test_stats_formatter_spec.rb[1:1]', @@ -57,7 +59,9 @@ describe QA::Support::Formatters::TestStatsFormatter do def run_spec(&spec) spec ||= -> { it('spec') {} } - describe_successfully('stats export', &spec) + describe_successfully('stats export', &spec).tap do |example_group| + example_group.examples.each { |ex| ex.metadata[:file_path] = file_path } + end send_stop_notification end diff --git a/qa/spec/support/shared_contexts/packages_registry_shared_context.rb b/qa/spec/support/shared_contexts/packages_registry_shared_context.rb new file mode 100644 index 00000000000..6e197015640 --- /dev/null +++ b/qa/spec/support/shared_contexts/packages_registry_shared_context.rb @@ -0,0 +1,63 @@ +# frozen_string_literal: true + +module QA + RSpec.shared_context 'packages registry qa scenario' do + let(:personal_access_token) { Runtime::Env.personal_access_token } + + let(:package_project) do + Resource::Project.fabricate_via_api! do |project| + project.name = "#{package_type}_package_project" + project.initialize_with_readme = true + project.visibility = :private + end + end + + let(:client_project) do + Resource::Project.fabricate_via_api! do |client_project| + client_project.name = "#{package_type}_client_project" + client_project.initialize_with_readme = true + client_project.group = package_project.group + end + end + + let(:package) do + Resource::Package.init do |package| + package.name = package_name + package.project = package_project + end + end + + let(:runner) do + Resource::Runner.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.runners_token + end + end + + let(:gitlab_address_with_port) do + uri = URI.parse(Runtime::Scenario.gitlab_address) + "#{uri.scheme}://#{uri.host}:#{uri.port}" + end + + let(:project_deploy_token) do + Resource::DeployToken.fabricate_via_browser_ui! do |deploy_token| + deploy_token.name = 'helm-package-deploy-token' + deploy_token.project = package_project + end + end + + before do + Flow::Login.sign_in_unless_signed_in + runner + end + + after do + runner.remove_via_api! + package.remove_via_api! + package_project.remove_via_api! + client_project.remove_via_api! + end + end +end |