Files
dunlop-core/spec/services/dunlop/file_zip_spec.rb
T
2025-10-04 11:57:16 -05:00

85 lines
2.5 KiB
Ruby

require 'rails_helper'
RSpec.describe Dunlop::FileZip do
let(:zipped_filename) { fixture_path.join("file_zip/sip24_kvd_1.zip") }
let(:gzipped_filename) { fixture_path.join("file_zip/sip24_kvd_1.gz") }
let(:unzipped_filename) { fixture_path.join("file_zip/sip24_kvd_1.txt") }
let(:destination_filename) { "/tmp/sip24_kvd_1.txt" }
before do
FileUtils.rm_f(destination_filename)
end
after do
FileUtils.rm_f(destination_filename)
end
context ".unzip" do
context "mime-type: application/zip" do
it "unzips the file to the provided filename" do
expect(File.exist?(destination_filename)).to be_falsey
subject.unzip(zipped_filename, destination_filename)
expect(File.exist?(destination_filename)).to be_truthy
expect(File.exist?(zipped_filename)).to be_truthy
expect(File.read(destination_filename)).to eq File.read(unzipped_filename)
end
end
context "mime-type: application/x-gzip" do
it "unzips the file to the provided filename" do
expect(File.exist?(destination_filename)).to be_falsey
subject.unzip(gzipped_filename, destination_filename)
expect(File.exist?(destination_filename)).to be_truthy
expect(File.exist?(gzipped_filename)).to be_truthy
expect(File.read(destination_filename)).to eq File.read(unzipped_filename)
end
end
context "mime-type: text/plain" do
it "copies the file to the provided filename" do
expect(File.exist?(destination_filename)).to be_falsey
subject.unzip(unzipped_filename, destination_filename)
expect(File.exist?(destination_filename)).to be_truthy
expect(File.exist?(unzipped_filename)).to be_truthy
expect(File.read(destination_filename)).to eq File.read(unzipped_filename)
end
end
end
context ".gzip" do
let(:gzipped_filename) { "/tmp/sip24_kvd_1.txt.gz" }
before do
FileUtils.rm_f(gzipped_filename)
end
after do
FileUtils.rm_f(gzipped_filename)
end
it "gzips the file to the provided filename" do
expect(File.exist?(gzipped_filename)).to be_falsey
subject.gzip(unzipped_filename, gzipped_filename)
expect(File.exist?(gzipped_filename)).to be_truthy
expect(File.exist?(unzipped_filename)).to be_truthy
expect(File.size(unzipped_filename)).to eq 305
expect(File.size(gzipped_filename)).to eq 153
expect(subject.mime_type(gzipped_filename)).to eq 'application/x-gzip'
end
end
end