mirror of
https://github.com/Freika/dawarich.git
synced 2026-01-10 01:01:39 -05:00
Fix tests after updating rubyzip
This commit is contained in:
parent
7a028cd246
commit
4287fee93d
4 changed files with 19 additions and 18 deletions
|
|
@ -311,18 +311,10 @@ class Users::ExportData
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
attr_reader :user
|
attr_reader :user, :export_directory, :files_directory
|
||||||
|
|
||||||
def export_directory
|
|
||||||
@export_directory
|
|
||||||
end
|
|
||||||
|
|
||||||
def files_directory
|
|
||||||
@files_directory
|
|
||||||
end
|
|
||||||
|
|
||||||
def calculate_entity_counts
|
def calculate_entity_counts
|
||||||
Rails.logger.info "Calculating entity counts for export"
|
Rails.logger.info 'Calculating entity counts for export'
|
||||||
|
|
||||||
counts = {
|
counts = {
|
||||||
areas: user.areas.count,
|
areas: user.areas.count,
|
||||||
|
|
@ -340,15 +332,15 @@ class Users::ExportData
|
||||||
counts
|
counts
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_zip_archive(export_directory, zip_file_path)
|
def create_zip_archive(export_directory, zip_file_path)
|
||||||
original_compression = Zip.default_compression
|
original_compression = Zip.default_compression
|
||||||
Zip.default_compression = Zip::Entry::DEFLATED
|
Zip.default_compression = Zip::Entry::DEFLATED
|
||||||
|
|
||||||
Zip::File.open(zip_file_path, Zip::File::CREATE) do |zipfile|
|
Zip::File.open(zip_file_path, create: true) do |zipfile|
|
||||||
Dir.glob(export_directory.join('**', '*')).each do |file|
|
Dir.glob(export_directory.join('**', '*')).each do |file|
|
||||||
next if File.directory?(file) || file == zip_file_path.to_s
|
next if File.directory?(file) || file == zip_file_path.to_s
|
||||||
|
|
||||||
relative_path = file.sub(export_directory.to_s + '/', '')
|
relative_path = file.sub(%r{#{export_directory}/}, '')
|
||||||
|
|
||||||
zipfile.add(relative_path, file)
|
zipfile.add(relative_path, file)
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -71,11 +71,15 @@ class Users::ImportData
|
||||||
|
|
||||||
Zip::File.open(archive_path) do |zip_file|
|
Zip::File.open(archive_path) do |zip_file|
|
||||||
zip_file.each do |entry|
|
zip_file.each do |entry|
|
||||||
extraction_path = @import_directory.join(entry.name)
|
next if entry.directory?
|
||||||
|
|
||||||
|
extraction_path = File.join(@import_directory, entry.name)
|
||||||
|
Rails.logger.debug "Extracting #{entry.name} to #{extraction_path}"
|
||||||
|
|
||||||
FileUtils.mkdir_p(File.dirname(extraction_path))
|
FileUtils.mkdir_p(File.dirname(extraction_path))
|
||||||
|
|
||||||
entry.extract(extraction_path)
|
# Use destination_directory parameter for rubyzip 3.x compatibility
|
||||||
|
entry.extract(entry.name, destination_directory: @import_directory)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,12 @@ RSpec.describe Notification, type: :model do
|
||||||
let(:unread_notification) { create(:notification, read_at: nil) }
|
let(:unread_notification) { create(:notification, read_at: nil) }
|
||||||
|
|
||||||
it 'returns only unread notifications' do
|
it 'returns only unread notifications' do
|
||||||
expect(described_class.unread).to eq([unread_notification])
|
read_notification # ensure it's created
|
||||||
|
unread_notification # ensure it's created
|
||||||
|
|
||||||
|
unread_notifications = described_class.unread
|
||||||
|
expect(unread_notifications).to include(unread_notification)
|
||||||
|
expect(unread_notifications).not_to include(read_notification)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -57,7 +57,7 @@ RSpec.describe Users::ExportData, type: :service do
|
||||||
allow(export_record).to receive_message_chain(:file, :attach)
|
allow(export_record).to receive_message_chain(:file, :attach)
|
||||||
|
|
||||||
# Mock Zip file creation
|
# Mock Zip file creation
|
||||||
allow(Zip::File).to receive(:open).with(zip_file_path, Zip::File::CREATE).and_yield(zip_file_double)
|
allow(Zip::File).to receive(:open).with(zip_file_path, create: true).and_yield(zip_file_double)
|
||||||
allow(zip_file_double).to receive(:default_compression=)
|
allow(zip_file_double).to receive(:default_compression=)
|
||||||
allow(zip_file_double).to receive(:default_compression_level=)
|
allow(zip_file_double).to receive(:default_compression_level=)
|
||||||
allow(zip_file_double).to receive(:add)
|
allow(zip_file_double).to receive(:add)
|
||||||
|
|
@ -108,7 +108,7 @@ RSpec.describe Users::ExportData, type: :service do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'creates a zip file with proper compression settings' do
|
it 'creates a zip file with proper compression settings' do
|
||||||
expect(Zip::File).to receive(:open).with(zip_file_path, Zip::File::CREATE)
|
expect(Zip::File).to receive(:open).with(zip_file_path, create: true)
|
||||||
expect(Zip).to receive(:default_compression).and_return(-1) # Mock original compression
|
expect(Zip).to receive(:default_compression).and_return(-1) # Mock original compression
|
||||||
expect(Zip).to receive(:default_compression=).with(Zip::Entry::DEFLATED)
|
expect(Zip).to receive(:default_compression=).with(Zip::Entry::DEFLATED)
|
||||||
expect(Zip).to receive(:default_compression=).with(-1) # Restoration
|
expect(Zip).to receive(:default_compression=).with(-1) # Restoration
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue