diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-07-20 15:40:28 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-07-20 15:40:28 +0000 |
commit | b595cb0c1dec83de5bdee18284abe86614bed33b (patch) | |
tree | 8c3d4540f193c5ff98019352f554e921b3a41a72 /spec/lib/gitlab/import_export | |
parent | 2f9104a328fc8a4bddeaa4627b595166d24671d0 (diff) | |
download | gitlab-ce-b595cb0c1dec83de5bdee18284abe86614bed33b.tar.gz |
Add latest changes from gitlab-org/gitlab@15-2-stable-eev15.2.0-rc42
Diffstat (limited to 'spec/lib/gitlab/import_export')
5 files changed, 80 insertions, 38 deletions
diff --git a/spec/lib/gitlab/import_export/all_models.yml b/spec/lib/gitlab/import_export/all_models.yml index 9d516c8d7ac..af910b08fae 100644 --- a/spec/lib/gitlab/import_export/all_models.yml +++ b/spec/lib/gitlab/import_export/all_models.yml @@ -420,6 +420,8 @@ project: - zentao_integration # dingtalk_integration JiHu-specific, see https://jihulab.com/gitlab-cn/gitlab/-/merge_requests/417 - dingtalk_integration +# dingtalk_integration JiHu-specific, see https://jihulab.com/gitlab-cn/gitlab/-/merge_requests/640 +- feishu_integration - redmine_integration - youtrack_integration - custom_issue_tracker_integration @@ -557,7 +559,6 @@ project: - packages - package_files - packages_cleanup_policy -- tracing_setting - alerting_setting - project_setting - webide_pipelines @@ -604,6 +605,7 @@ project: - incident_management_oncall_schedules - incident_management_oncall_rotations - incident_management_escalation_policies +- incident_management_issuable_escalation_statuses - debian_distributions - merge_request_metrics - security_orchestration_policy_configuration @@ -695,8 +697,6 @@ epic_issues: feature_flag_issues: - issue - feature_flag -tracing_setting: -- project reviews: - project - merge_request diff --git a/spec/lib/gitlab/import_export/json/streaming_serializer_spec.rb b/spec/lib/gitlab/import_export/json/streaming_serializer_spec.rb index 03f522ae490..3f73a730744 100644 --- a/spec/lib/gitlab/import_export/json/streaming_serializer_spec.rb +++ b/spec/lib/gitlab/import_export/json/streaming_serializer_spec.rb @@ -171,4 +171,27 @@ RSpec.describe Gitlab::ImportExport::Json::StreamingSerializer do expect(described_class.batch_size(exportable)).to eq(described_class::BATCH_SIZE) end end + + describe '#serialize_relation' do + context 'when record is a merge request' do + let(:json_writer) do + Class.new do + def write_relation_array(_, _, enumerator) + enumerator.each { _1 } + end + end.new + end + + it 'removes cached external diff' do + merge_request = create(:merge_request, source_project: exportable, target_project: exportable) + cache_dir = merge_request.merge_request_diff.send(:external_diff_cache_dir) + + expect(subject).to receive(:remove_cached_external_diff).with(merge_request).twice + + subject.serialize_relation({ merge_requests: { include: [] } }) + + expect(Dir.exist?(cache_dir)).to eq(false) + end + end + end end diff --git a/spec/lib/gitlab/import_export/members_mapper_spec.rb b/spec/lib/gitlab/import_export/members_mapper_spec.rb index 87ca899a87d..d7ad34255c1 100644 --- a/spec/lib/gitlab/import_export/members_mapper_spec.rb +++ b/spec/lib/gitlab/import_export/members_mapper_spec.rb @@ -258,7 +258,7 @@ RSpec.describe Gitlab::ImportExport::MembersMapper do end before do - group.add_users([user, user2], GroupMember::DEVELOPER) + group.add_members([user, user2], GroupMember::DEVELOPER) end it 'maps the project member' do @@ -281,7 +281,7 @@ RSpec.describe Gitlab::ImportExport::MembersMapper do end before do - group.add_users([user, user2], GroupMember::DEVELOPER) + group.add_members([user, user2], GroupMember::DEVELOPER) end it 'maps the importer' do @@ -315,7 +315,7 @@ RSpec.describe Gitlab::ImportExport::MembersMapper do shared_examples_for 'it fetches the access level from parent group' do before do - group.add_users([user], group_access_level) + group.add_members([user], group_access_level) end it "and resolves it correctly" do diff --git a/spec/lib/gitlab/import_export/project/tree_restorer_spec.rb b/spec/lib/gitlab/import_export/project/tree_restorer_spec.rb index d3397e89f1f..157cd408da9 100644 --- a/spec/lib/gitlab/import_export/project/tree_restorer_spec.rb +++ b/spec/lib/gitlab/import_export/project/tree_restorer_spec.rb @@ -383,21 +383,52 @@ RSpec.describe Gitlab::ImportExport::Project::TreeRestorer do end end - it 'restores releases with links & milestones' do - release = @project.releases.last - link = release.links.last + context 'restores releases' do + it 'with links & milestones' do + release = @project.releases.last + link = release.links.last + + aggregate_failures do + expect(release.tag).to eq('release-1.2') + expect(release.description).to eq('Some release notes') + expect(release.name).to eq('release-1.2') + expect(release.sha).to eq('903de3a8bd5573f4a049b1457d28bc1592ba6bf9') + expect(release.released_at).to eq('2019-12-27T10:17:14.615Z') + expect(release.milestone_releases.count).to eq(1) + expect(release.milestone_releases.first.milestone.title).to eq('test milestone') + + expect(link.url).to eq('http://localhost/namespace6/project6/-/jobs/140463678/artifacts/download') + expect(link.name).to eq('release-1.2.dmg') + end + end - aggregate_failures do - expect(release.tag).to eq('release-1.1') - expect(release.description).to eq('Some release notes') - expect(release.name).to eq('release-1.1') - expect(release.sha).to eq('901de3a8bd5573f4a049b1457d28bc1592ba6bf9') - expect(release.released_at).to eq('2019-12-26T10:17:14.615Z') - expect(release.milestone_releases.count).to eq(1) - expect(release.milestone_releases.first.milestone.title).to eq('test milestone') - - expect(link.url).to eq('http://localhost/namespace6/project6/-/jobs/140463678/artifacts/download') - expect(link.name).to eq('release-1.1.dmg') + context 'with author' do + it 'as ghost user when imported release author is empty' do + release = @project.releases.first + + aggregate_failures do + expect(release.tag).to eq('release-1.0') + expect(release.author_id).to eq(User.select(:id).ghost.id) + end + end + + it 'as existing member when imported release author is matched with existing user' do + release = @project.releases.second + + aggregate_failures do + expect(release.tag).to eq('release-1.1') + expect(release.author_id).to eq(@existing_members.first.id) + end + end + + it 'as import user when imported release author cannot be matched' do + release = @project.releases.last + + aggregate_failures do + expect(release.tag).to eq('release-1.2') + expect(release.author_id).to eq(@user.id) + end + end end end @@ -441,7 +472,7 @@ RSpec.describe Gitlab::ImportExport::Project::TreeRestorer do end it 'has a new CI build token' do - expect(Ci::Build.where(token: 'abcd')).to be_empty + expect(Ci::Build.find_by_token('abcd')).to be_nil end end @@ -568,20 +599,10 @@ RSpec.describe Gitlab::ImportExport::Project::TreeRestorer do context 'when there is an existing build with build token' do before do - create(:ci_build, token: 'abcd') - end - - it_behaves_like 'restores project successfully', - issues: 1, - labels: 2, - label_with_priorities: 'A project label', - milestones: 1, - first_issue_labels: 1 - end - - context 'when there is an existing build with build token' do - before do - create(:ci_build, token: 'abcd') + create(:ci_build).tap do |job| + job.set_token('abcd') + job.save! + end end it_behaves_like 'restores project successfully', @@ -885,7 +906,7 @@ RSpec.describe Gitlab::ImportExport::Project::TreeRestorer do context 'with group visibility' do before do group = create(:group, visibility_level: group_visibility) - group.add_users([user], GroupMember::MAINTAINER) + group.add_members([user], GroupMember::MAINTAINER) project.update!(group: group) end diff --git a/spec/lib/gitlab/import_export/safe_model_attributes.yml b/spec/lib/gitlab/import_export/safe_model_attributes.yml index d7f07a1eadf..bd60bb53d49 100644 --- a/spec/lib/gitlab/import_export/safe_model_attributes.yml +++ b/spec/lib/gitlab/import_export/safe_model_attributes.yml @@ -564,8 +564,6 @@ Project: - suggestion_commit_message - merge_commit_template - squash_commit_template -ProjectTracingSetting: -- external_url Author: - name ProjectFeature: |