Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/packages/composer/metadatum_spec.rb')
-rw-r--r--spec/models/packages/composer/metadatum_spec.rb29
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