diff options
Diffstat (limited to 'spec/models/import_failure_spec.rb')
-rw-r--r-- | spec/models/import_failure_spec.rb | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/spec/models/import_failure_spec.rb b/spec/models/import_failure_spec.rb index 9fee1b0ae7b..101da1212cf 100644 --- a/spec/models/import_failure_spec.rb +++ b/spec/models/import_failure_spec.rb @@ -8,9 +8,18 @@ RSpec.describe ImportFailure do let_it_be(:correlation_id) { 'ABC' } let_it_be(:hard_failure) { create(:import_failure, :hard_failure, project: project, correlation_id_value: correlation_id) } let_it_be(:soft_failure) { create(:import_failure, :soft_failure, project: project, correlation_id_value: correlation_id) } + let_it_be(:github_import_failure) { create(:import_failure, :github_import_failure, project: project) } let_it_be(:unrelated_failure) { create(:import_failure, project: project) } - it 'returns hard failures given a correlation ID' do + it 'returns failures with external_identifiers' do + expect(ImportFailure.with_external_identifiers).to match_array([github_import_failure]) + end + + it 'returns failures for the given correlation ID' do + expect(ImportFailure.failures_by_correlation_id(correlation_id)).to match_array([hard_failure, soft_failure]) + end + + it 'returns hard failures for the given correlation ID' do expect(ImportFailure.hard_failures_by_correlation_id(correlation_id)).to eq([hard_failure]) end @@ -45,5 +54,21 @@ RSpec.describe ImportFailure do it { is_expected.to validate_presence_of(:group) } end + + describe '#external_identifiers' do + it { is_expected.to allow_value({ note_id: 234, noteable_id: 345, noteable_type: 'MergeRequest' }).for(:external_identifiers) } + it { is_expected.not_to allow_value(nil).for(:external_identifiers) } + it { is_expected.not_to allow_value({ ids: [123] }).for(:external_identifiers) } + + it 'allows up to 3 fields' do + is_expected.not_to allow_value({ + note_id: 234, + noteable_id: 345, + noteable_type: 'MergeRequest', + object_type: 'pull_request', + extra_attribute: 'abc' + }).for(:external_identifiers) + end + end end end |