diff options
Diffstat (limited to 'spec/models/ml/model_spec.rb')
-rw-r--r-- | spec/models/ml/model_spec.rb | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/spec/models/ml/model_spec.rb b/spec/models/ml/model_spec.rb index ae7c3f163f3..e1de44b0030 100644 --- a/spec/models/ml/model_spec.rb +++ b/spec/models/ml/model_spec.rb @@ -63,6 +63,19 @@ RSpec.describe Ml::Model, feature_category: :mlops do end end + describe 'candidates' do + let_it_be(:candidate1) { create(:ml_model_versions, model: existing_model).candidate } + let_it_be(:candidate2) do + create(:ml_candidates, experiment: existing_model.default_experiment, project: project1) + end + + let_it_be(:candidate3) { create(:ml_candidates, project: project1) } + + it 'returns only the candidates for default experiment that do not belong to a model version' do + expect(existing_model.candidates).to match_array([candidate2]) + end + end + describe '.by_project' do subject { described_class.by_project(project1) } @@ -128,4 +141,27 @@ RSpec.describe Ml::Model, feature_category: :mlops do it { is_expected.to be(nil) } end end + + describe '#all_packages' do + it 'returns an empty array when no model versions exist' do + expect(existing_model.all_packages).to eq([]) + end + + it 'returns one package when a single model version exists' do + version = create(:ml_model_versions, :with_package, model: existing_model) + + all_packages = existing_model.all_packages + expect(all_packages.length).to be(1) + expect(all_packages.first).to eq(version.package) + end + + it 'returns multiple packages when multiple model versions exist' do + version1 = create(:ml_model_versions, :with_package, model: existing_model) + version2 = create(:ml_model_versions, :with_package, model: existing_model) + + all_packages = existing_model.all_packages + expect(all_packages.length).to be(2) + expect(all_packages).to match_array([version1.package, version2.package]) + end + end end |