diff options
Diffstat (limited to 'spec/models/packages/composer/metadatum_spec.rb')
-rw-r--r-- | spec/models/packages/composer/metadatum_spec.rb | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/spec/models/packages/composer/metadatum_spec.rb b/spec/models/packages/composer/metadatum_spec.rb index 1c888f1563c..326eba7aa0e 100644 --- a/spec/models/packages/composer/metadatum_spec.rb +++ b/spec/models/packages/composer/metadatum_spec.rb @@ -10,6 +10,35 @@ RSpec.describe Packages::Composer::Metadatum, type: :model do it { is_expected.to validate_presence_of(:package) } it { is_expected.to validate_presence_of(:target_sha) } it { is_expected.to validate_presence_of(:composer_json) } + + describe '#composer_package_type' do + subject { build(:composer_metadatum, package: package) } + + shared_examples 'an invalid record' do + it do + expect(subject).not_to be_valid + expect(subject.errors.to_a).to include('Package type must be Composer') + end + end + + context 'when the metadatum package_type is Composer' do + let(:package) { build(:composer_package) } + + it { is_expected.to be_valid } + end + + context 'when the metadatum has no associated package' do + let(:package) { nil } + + it_behaves_like 'an invalid record' + end + + context 'when the metadatum package_type is not Composer' do + let(:package) { build(:npm_package) } + + it_behaves_like 'an invalid record' + end + end end describe 'scopes' do |