diff options
Diffstat (limited to 'spec/presenters/packages/detail/package_presenter_spec.rb')
-rw-r--r-- | spec/presenters/packages/detail/package_presenter_spec.rb | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/spec/presenters/packages/detail/package_presenter_spec.rb b/spec/presenters/packages/detail/package_presenter_spec.rb index 8ece27e9b5f..e38bbbe600c 100644 --- a/spec/presenters/packages/detail/package_presenter_spec.rb +++ b/spec/presenters/packages/detail/package_presenter_spec.rb @@ -22,7 +22,7 @@ RSpec.describe ::Packages::Detail::PackagePresenter do end let(:pipeline_info) do - pipeline = package.build_info.pipeline + pipeline = package.original_build_info.pipeline { created_at: pipeline.created_at, id: pipeline.id, @@ -56,16 +56,44 @@ RSpec.describe ::Packages::Detail::PackagePresenter do } end - context 'detail_view' do + describe '#detail_view' do context 'with build_info' do let_it_be(:package) { create(:npm_package, :with_build, project: project) } - let(:expected_package_details) { super().merge(pipeline: pipeline_info) } + + let(:expected_package_details) do + super().merge( + pipeline: pipeline_info, + pipelines: [pipeline_info] + ) + end it 'returns details with pipeline' do expect(presenter.detail_view).to match expected_package_details end end + context 'with multiple build_infos' do + let_it_be(:package) { create(:npm_package, :with_build, project: project) } + let_it_be(:build_info2) { create(:package_build_info, :with_pipeline, package: package) } + + it 'returns details with two pipelines' do + expect(presenter.detail_view[:pipelines].size).to eq(2) + end + end + + context 'with package_file_build_infos' do + let_it_be(:package) { create(:npm_package, :with_build, project: project) } + + let_it_be(:package_file_build_info) do + create(:package_file_build_info, package_file: package.package_files.first, + pipeline: package.pipelines.first) + end + + it 'returns details with package_file pipeline' do + expect(presenter.detail_view[:package_files].first[:pipelines].size).to eq(1) + end + end + context 'without build info' do let_it_be(:package) { create(:npm_package, project: project) } |