summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/import_export/import_test_coverage_spec.rb
diff options
context:
space:
mode:
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.rb101
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.