summaryrefslogtreecommitdiff
path: root/spec/presenters/packages/detail/package_presenter_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/presenters/packages/detail/package_presenter_spec.rb')
-rw-r--r--spec/presenters/packages/detail/package_presenter_spec.rb34
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) }