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: ...@@ -126,7 +126,6 @@ included_attributes:
- :project_id - :project_id
project_badges: project_badges:
- :created_at - :created_at
- :group_id
- :image_url - :image_url
- :link_url - :link_url
- :name - :name
...@@ -572,7 +571,6 @@ included_attributes: ...@@ -572,7 +571,6 @@ included_attributes:
- :updated_at - :updated_at
actions: actions:
- :event - :event
- :image_v432x230
design: &design_definition design: &design_definition
- :iid - :iid
- :project_id - :project_id
...@@ -731,7 +729,6 @@ excluded_attributes: ...@@ -731,7 +729,6 @@ excluded_attributes:
- :verification_checksum - :verification_checksum
- :verification_failure - :verification_failure
merge_request_diff_files: merge_request_diff_files:
- :diff
- :external_diff_offset - :external_diff_offset
- :external_diff_size - :external_diff_size
- :merge_request_diff_id - :merge_request_diff_id
...@@ -890,8 +887,6 @@ excluded_attributes: ...@@ -890,8 +887,6 @@ excluded_attributes:
system_note_metadata: system_note_metadata:
- :description_version_id - :description_version_id
- :note_id - :note_id
pipeline_schedules:
- :active
methods: methods:
notes: notes:
- :type - :type
......
...@@ -253,6 +253,7 @@ MergeRequestDiffFile: ...@@ -253,6 +253,7 @@ MergeRequestDiffFile:
- b_mode - b_mode
- too_large - too_large
- binary - binary
- diff
MergeRequestContextCommit: MergeRequestContextCommit:
- id - id
- authored_date - authored_date
......
# frozen_string_literal: true # frozen_string_literal: true
RSpec.shared_examples 'a permitted attribute' do |relation_sym, permitted_attributes, additional_attributes = []| 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(:import_export_config) { Gitlab::ImportExport::Config.new.to_h }
let(:project_relation_factory) { Gitlab::ImportExport::Project::RelationFactory } let(:project_relation_factory) { Gitlab::ImportExport::Project::RelationFactory }
...@@ -8,7 +8,7 @@ RSpec.shared_examples 'a permitted attribute' do |relation_sym, permitted_attrib ...@@ -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_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_name) { project_relation_factory.overrides[relation_sym]&.to_sym || relation_sym }
let(:relation_class) { project_relation_factory.relation_class(relation_name) } 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 let(:cleaned_hash) do
Gitlab::ImportExport::AttributeCleaner.new( Gitlab::ImportExport::AttributeCleaner.new(
...@@ -18,7 +18,7 @@ RSpec.shared_examples 'a permitted attribute' do |relation_sym, permitted_attrib ...@@ -18,7 +18,7 @@ RSpec.shared_examples 'a permitted attribute' do |relation_sym, permitted_attrib
).clean ).clean
end 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) if described_class.new.permitted_attributes_defined?(relation_sym)
it 'contains only attributes that are defined as permitted in the import/export config' do 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 ...@@ -26,11 +26,11 @@ RSpec.shared_examples 'a permitted attribute' do |relation_sym, permitted_attrib
end end
it 'does not contain attributes that would be cleaned with AttributeCleaner' do 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 end
it 'does not contain prohibited attributes that are not related to given relation' do 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 end
else else
it 'is disabled' do 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