summaryrefslogtreecommitdiff
path: root/spec/services/packages/helm/extract_file_metadata_service_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/services/packages/helm/extract_file_metadata_service_spec.rb')
-rw-r--r--spec/services/packages/helm/extract_file_metadata_service_spec.rb13
1 files changed, 13 insertions, 0 deletions
diff --git a/spec/services/packages/helm/extract_file_metadata_service_spec.rb b/spec/services/packages/helm/extract_file_metadata_service_spec.rb
index 273f679b736..f4c61c12344 100644
--- a/spec/services/packages/helm/extract_file_metadata_service_spec.rb
+++ b/spec/services/packages/helm/extract_file_metadata_service_spec.rb
@@ -54,4 +54,17 @@ RSpec.describe Packages::Helm::ExtractFileMetadataService do
it { expect { subject }.to raise_error(described_class::ExtractionError, 'Error while parsing Chart.yaml: (<unknown>): did not find expected node content while parsing a flow node at line 2 column 1') }
end
+
+ context 'with a corrupted Chart.yaml of incorrect size' do
+ let(:helm_fixture_path) { expand_fixture_path('packages/helm/corrupted_chart.tgz') }
+ let(:expected_error_message) { 'Chart.yaml too big' }
+
+ before do
+ allow(Zlib::GzipReader).to receive(:new).and_return(Zlib::GzipReader.new(File.open(helm_fixture_path)))
+ end
+
+ it 'raises an error with the expected message' do
+ expect { subject }.to raise_error(::Packages::Helm::ExtractFileMetadataService::ExtractionError, expected_error_message)
+ end
+ end
end