summaryrefslogtreecommitdiff
path: root/spec/services/packages/debian/extract_deb_metadata_service_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/services/packages/debian/extract_deb_metadata_service_spec.rb')
-rw-r--r--spec/services/packages/debian/extract_deb_metadata_service_spec.rb37
1 files changed, 37 insertions, 0 deletions
diff --git a/spec/services/packages/debian/extract_deb_metadata_service_spec.rb b/spec/services/packages/debian/extract_deb_metadata_service_spec.rb
new file mode 100644
index 00000000000..33059adf8a2
--- /dev/null
+++ b/spec/services/packages/debian/extract_deb_metadata_service_spec.rb
@@ -0,0 +1,37 @@
+# frozen_string_literal: true
+require 'spec_helper'
+
+RSpec.describe Packages::Debian::ExtractDebMetadataService do
+ subject { described_class.new(file_path) }
+
+ let(:file_name) { 'libsample0_1.2.3~alpha2_amd64.deb' }
+ let(:file_path) { "spec/fixtures/packages/debian/#{file_name}" }
+
+ context 'with correct file' do
+ it 'return as expected' do
+ expected = {
+ 'Package': 'libsample0',
+ 'Source': 'sample',
+ 'Version': '1.2.3~alpha2',
+ 'Architecture': 'amd64',
+ 'Maintainer': 'John Doe <john.doe@example.com>',
+ 'Installed-Size': '7',
+ 'Section': 'libs',
+ 'Priority': 'optional',
+ 'Multi-Arch': 'same',
+ 'Homepage': 'https://gitlab.com/',
+ 'Description': "Some mostly empty lib\nUsed in GitLab tests.\n\nTesting another paragraph."
+ }
+
+ expect(subject.execute).to eq expected
+ end
+ end
+
+ context 'with incorrect file' do
+ let(:file_name) { 'README.md' }
+
+ it 'raise error' do
+ expect {subject.execute}.to raise_error(described_class::CommandFailedError, /is not a Debian format archive/i)
+ end
+ end
+end