summaryrefslogtreecommitdiff
path: root/qa/qa/specs/features/api/1_manage/migration
diff options
context:
space:
mode:
Diffstat (limited to 'qa/qa/specs/features/api/1_manage/migration')
-rw-r--r--qa/qa/specs/features/api/1_manage/migration/gitlab_migration_issue_spec.rb26
-rw-r--r--qa/qa/specs/features/api/1_manage/migration/gitlab_migration_large_project_spec.rb7
-rw-r--r--qa/qa/specs/features/api/1_manage/migration/gitlab_migration_project_spec.rb6
3 files changed, 31 insertions, 8 deletions
diff --git a/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_issue_spec.rb b/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_issue_spec.rb
index dd2e7f06995..052e3d0e32d 100644
--- a/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_issue_spec.rb
+++ b/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_issue_spec.rb
@@ -52,6 +52,32 @@ module QA
end
end
+ context 'with associated merge request' do
+ let!(:source_mr) do
+ Resource::MergeRequest.fabricate_via_api! do |mr|
+ mr.project = source_project
+ mr.api_client = source_admin_api_client
+ mr.description = "Closes #{source_issue.web_url}"
+ end
+ end
+
+ let(:imported_related_mrs) do
+ imported_issue.related_merge_requests.pluck(:iid)
+ end
+
+ it(
+ 'preserves related merge request',
+ testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/386305',
+ quarantine: {
+ type: :bug,
+ issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/386308'
+ }
+ ) do
+ expect_project_import_finished_successfully
+ expect(imported_related_mrs).to eq([source_mr.iid])
+ end
+ end
+
# we can't fabricate things in source instance via UI
context "with designs", quarantine: {
type: :broken,
diff --git a/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_large_project_spec.rb b/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_large_project_spec.rb
index 5fc170435e3..9ce028318c3 100644
--- a/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_large_project_spec.rb
+++ b/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_large_project_spec.rb
@@ -15,7 +15,8 @@ module QA
let!(:gitlab_source_project) { ENV["QA_LARGE_IMPORT_REPO"] || "migration-test-project" }
let!(:import_wait_duration) { { max_duration: (ENV["QA_LARGE_IMPORT_DURATION"] || 3600).to_i, sleep_interval: 30 } }
- let!(:source_admin_user) { "no-op" }
+ # test uses production as source which doesn't have actual admin user
+ let!(:source_admin_user) { nil }
let!(:source_admin_api_client) do
Runtime::API::Client.new(
source_gitlab_address,
@@ -227,8 +228,8 @@ module QA
comment_diff = verify_comments(type, actual, expected)
{
- "missing_#{type}s": (expected.keys - actual.keys).map { |it| expected[it]&.slice(:title, :url) }.compact,
- "extra_#{type}s": (actual.keys - expected.keys).map { |it| actual[it]&.slice(:title, :url) }.compact,
+ "missing_#{type}s": (expected.keys - actual.keys).filter_map { |it| expected[it]&.slice(:title, :url) },
+ "extra_#{type}s": (actual.keys - expected.keys).filter_map { |it| actual[it]&.slice(:title, :url) },
"#{type}_comments": comment_diff
}
end
diff --git a/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_project_spec.rb b/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_project_spec.rb
index 83691cdf143..9f6b1d38bd7 100644
--- a/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_project_spec.rb
+++ b/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_project_spec.rb
@@ -6,11 +6,7 @@ module QA
include_context 'with gitlab project migration'
# this spec is used as a sanity test for gitlab migration because it can run outside of orchestrated setup
- context 'with import within same instance', orchestrated: false, import: false, quarantine: {
- type: :test_environment,
- issue: "https://gitlab.com/gitlab-org/gitlab/-/issues/383605",
- only: { job: "review-qa" }
- } do
+ context 'with import within same instance', orchestrated: false, import: false do
let!(:source_project_with_readme) { true }
let!(:source_gitlab_address) { Runtime::Scenario.gitlab_address }
let!(:source_admin_api_client) { admin_api_client }