Commit 99e2f4ba authored by Igor Frenkel's avatar Igor Frenkel Committed by Vasilii Iakliushin

Fix specs for Import::AttributePermitter

parent 07ae35d8
......@@ -126,7 +126,6 @@ included_attributes:
- :project_id
project_badges:
- :created_at
- :group_id
- :image_url
- :link_url
- :name
......@@ -572,7 +571,6 @@ included_attributes:
- :updated_at
actions:
- :event
- :image_v432x230
design: &design_definition
- :iid
- :project_id
......@@ -731,7 +729,6 @@ excluded_attributes:
- :verification_checksum
- :verification_failure
merge_request_diff_files:
- :diff
- :external_diff_offset
- :external_diff_size
- :merge_request_diff_id
......@@ -890,8 +887,6 @@ excluded_attributes:
system_note_metadata:
- :description_version_id
- :note_id
pipeline_schedules:
- :active
methods:
notes:
- :type
......
......@@ -253,6 +253,7 @@ MergeRequestDiffFile:
- b_mode
- too_large
- binary
- diff
MergeRequestContextCommit:
- id
- authored_date
......
# frozen_string_literal: true
RSpec.shared_examples 'a permitted attribute' do |relation_sym, permitted_attributes, additional_attributes = []|
let(:prohibited_attributes) { %i[remote_url my_attributes my_ids token my_id test] }
let(:prohibited_attributes) { %w[remote_url my_attributes my_ids token my_id test] }
let(:import_export_config) { Gitlab::ImportExport::Config.new.to_h }
let(:project_relation_factory) { Gitlab::ImportExport::Project::RelationFactory }
......@@ -8,7 +8,7 @@ RSpec.shared_examples 'a permitted attribute' do |relation_sym, permitted_attrib
let(:relation_hash) { (permitted_attributes + prohibited_attributes).map(&:to_s).zip([]).to_h }
let(:relation_name) { project_relation_factory.overrides[relation_sym]&.to_sym || relation_sym }
let(:relation_class) { project_relation_factory.relation_class(relation_name) }
let(:excluded_keys) { import_export_config.dig(:excluded_keys, relation_sym) || [] }
let(:excluded_keys) { (import_export_config.dig(:excluded_attributes, relation_sym) || []).map(&:to_s) }
let(:cleaned_hash) do
Gitlab::ImportExport::AttributeCleaner.new(
......@@ -18,7 +18,7 @@ RSpec.shared_examples 'a permitted attribute' do |relation_sym, permitted_attrib
).clean
end
let(:permitted_hash) { subject.permit(relation_sym, relation_hash) }
let(:permitted_hash) { subject.permit(relation_sym, relation_hash).transform_keys { |k| k.to_s } }
if described_class.new.permitted_attributes_defined?(relation_sym)
it 'contains only attributes that are defined as permitted in the import/export config' do
......@@ -26,11 +26,11 @@ RSpec.shared_examples 'a permitted attribute' do |relation_sym, permitted_attrib
end
it 'does not contain attributes that would be cleaned with AttributeCleaner' do
expect(cleaned_hash.keys + additional_attributes.to_a).to include(*permitted_hash.keys)
expect((cleaned_hash.keys + additional_attributes.to_a.map(&:to_s))).to include(*permitted_hash.keys)
end
it 'does not contain prohibited attributes that are not related to given relation' do
expect(permitted_hash.keys).not_to include(*prohibited_attributes.map(&:to_s))
expect(permitted_hash.keys).not_to include(*prohibited_attributes)
end
else
it 'is disabled' do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment