diff options
Diffstat (limited to 'spec/lib/gitlab/import_export/import_test_coverage_spec.rb')
-rw-r--r-- | spec/lib/gitlab/import_export/import_test_coverage_spec.rb | 101 |
1 files changed, 53 insertions, 48 deletions
diff --git a/spec/lib/gitlab/import_export/import_test_coverage_spec.rb b/spec/lib/gitlab/import_export/import_test_coverage_spec.rb index 038b95809b4..c5a7327332e 100644 --- a/spec/lib/gitlab/import_export/import_test_coverage_spec.rb +++ b/spec/lib/gitlab/import_export/import_test_coverage_spec.rb @@ -10,61 +10,66 @@ require 'spec_helper' describe 'Test coverage of the Project Import' do include ConfigurationHelper - # `MUTED_RELATIONS` is a technical debt. + # `muted_relations` is a technical debt. # This list expected to be empty or used as a workround # in case this spec blocks an important urgent MR. # It is also expected that adding a relation in the list should lead to # opening a follow-up issue to fix this. - MUTED_RELATIONS = %w[ - project.milestones.events.push_event_payload - project.issues.events - project.issues.events.push_event_payload - project.issues.notes.events - project.issues.notes.events.push_event_payload - project.issues.milestone.events.push_event_payload - project.issues.issue_milestones - project.issues.issue_milestones.milestone - project.issues.resource_label_events.label.priorities - project.issues.designs.notes - project.issues.designs.notes.author - project.issues.designs.notes.events - project.issues.designs.notes.events.push_event_payload - project.merge_requests.metrics - project.merge_requests.notes.events.push_event_payload - project.merge_requests.events.push_event_payload - project.merge_requests.timelogs - project.merge_requests.label_links - project.merge_requests.label_links.label - project.merge_requests.label_links.label.priorities - project.merge_requests.milestone - project.merge_requests.milestone.events - project.merge_requests.milestone.events.push_event_payload - project.merge_requests.merge_request_milestones - project.merge_requests.merge_request_milestones.milestone - project.merge_requests.resource_label_events.label - project.merge_requests.resource_label_events.label.priorities - project.ci_pipelines.notes.events - project.ci_pipelines.notes.events.push_event_payload - project.protected_branches.unprotect_access_levels - project.prometheus_metrics - project.metrics_setting - project.boards.lists.label.priorities - project.service_desk_setting - ].freeze + let(:muted_relations) do + %w[ + project.milestones.events.push_event_payload + project.issues.events + project.issues.events.push_event_payload + project.issues.notes.events + project.issues.notes.events.push_event_payload + project.issues.milestone.events.push_event_payload + project.issues.issue_milestones + project.issues.issue_milestones.milestone + project.issues.resource_label_events.label.priorities + project.issues.designs.notes + project.issues.designs.notes.author + project.issues.designs.notes.events + project.issues.designs.notes.events.push_event_payload + project.merge_requests.metrics + project.merge_requests.notes.events.push_event_payload + project.merge_requests.events.push_event_payload + project.merge_requests.timelogs + project.merge_requests.label_links + project.merge_requests.label_links.label + project.merge_requests.label_links.label.priorities + project.merge_requests.milestone + project.merge_requests.milestone.events + project.merge_requests.milestone.events.push_event_payload + project.merge_requests.merge_request_milestones + project.merge_requests.merge_request_milestones.milestone + project.merge_requests.resource_label_events.label + project.merge_requests.resource_label_events.label.priorities + project.ci_pipelines.notes.events + project.ci_pipelines.notes.events.push_event_payload + project.protected_branches.unprotect_access_levels + project.prometheus_metrics + project.metrics_setting + project.boards.lists.label.priorities + project.service_desk_setting + project.security_setting + ].freeze + end # A list of JSON fixture files we use to test Import. # Most of the relations are present in `complex/project.json` # which is our main fixture. - PROJECT_JSON_FIXTURES = [ - 'spec/fixtures/lib/gitlab/import_export/complex/project.json', - 'spec/fixtures/lib/gitlab/import_export/group/project.json', - 'spec/fixtures/lib/gitlab/import_export/light/project.json', - 'spec/fixtures/lib/gitlab/import_export/milestone-iid/project.json', - 'spec/fixtures/lib/gitlab/import_export/designs/project.json' - ].freeze + let(:project_json_fixtures) do + [ + 'spec/fixtures/lib/gitlab/import_export/complex/project.json', + 'spec/fixtures/lib/gitlab/import_export/group/project.json', + 'spec/fixtures/lib/gitlab/import_export/light/project.json', + 'spec/fixtures/lib/gitlab/import_export/milestone-iid/project.json', + 'spec/fixtures/lib/gitlab/import_export/designs/project.json' + ].freeze + end it 'ensures that all imported/exported relations are present in test JSONs' do - not_tested_relations = (relations_from_config - tested_relations) - MUTED_RELATIONS + not_tested_relations = (relations_from_config - tested_relations) - muted_relations expect(not_tested_relations).to be_empty, failure_message(not_tested_relations) end @@ -76,7 +81,7 @@ describe 'Test coverage of the Project Import' do end def tested_relations - PROJECT_JSON_FIXTURES.flat_map(&method(:relations_from_json)).to_set + project_json_fixtures.flat_map(&method(:relations_from_json)).to_set end def relations_from_json(json_file) @@ -106,7 +111,7 @@ describe 'Test coverage of the Project Import' do These relations seem to be added recenty and they expected to be covered in our Import specs: #{not_tested_relations}. - To do that, expand one of the files listed in `PROJECT_JSON_FIXTURES` + To do that, expand one of the files listed in `project_json_fixtures` (or expand the list if you consider adding a new fixture file). After that, add a new spec into @@ -114,7 +119,7 @@ describe 'Test coverage of the Project Import' do to check that the relation is being imported correctly. In case the spec breaks the master or there is a sense of urgency, - you could include the relations into the `MUTED_RELATIONS` list. + you could include the relations into the `muted_relations` list. Muting relations is considered to be a temporary solution, so please open a follow-up issue and try to fix that when it is possible. |