1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe Ml::ModelVersionPresenter, feature_category: :mlops do
let_it_be(:project) { build_stubbed(:project) }
let_it_be(:model) { build_stubbed(:ml_models, name: 'a_model', project: project) }
let_it_be(:model_version) { build_stubbed(:ml_model_versions, :with_package, model: model, version: '1.1.1') }
let_it_be(:model_version_without_package) { build_stubbed(:ml_model_versions, model: model, version: '1.1.1') }
let_it_be(:presenter) { model_version.present }
describe '.display_name' do
subject { presenter.display_name }
it { is_expected.to eq('a_model / 1.1.1') }
end
describe '#path' do
subject { presenter.path }
it { is_expected.to eq("/#{project.full_path}/-/ml/models/#{model.id}/versions/#{model_version.id}") }
end
describe '#package_path' do
subject { presenter.package_path }
it { is_expected.to eq("/#{project.full_path}/-/packages/#{model_version.package_id}") }
end
describe '#import_path' do
subject { presenter.import_path }
it { is_expected.to eq("/api/v4/projects/#{project.id}/packages/ml_models/#{model_version.id}/files/") }
end
describe '#auhor' do
subject { presenter.author }
it { is_expected.to eq(model_version.package.creator) }
end
describe 'when author is not present' do
let_it_be(:presenter) { model_version_without_package.present }
subject { presenter.author }
it { is_expected.to be_nil }
end
describe '#artifacts_count' do
subject { presenter.artifacts_count }
it { is_expected.to eq(model_version.package.package_files.length) }
end
end
|