mirror of
https://github.com/Freika/dawarich.git
synced 2026-01-09 08:47:11 -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
|
||||
|
||||
attr_reader :user
|
||||
|
||||
def export_directory
|
||||
@export_directory
|
||||
end
|
||||
|
||||
def files_directory
|
||||
@files_directory
|
||||
end
|
||||
attr_reader :user, :export_directory, :files_directory
|
||||
|
||||
def calculate_entity_counts
|
||||
Rails.logger.info "Calculating entity counts for export"
|
||||
Rails.logger.info 'Calculating entity counts for export'
|
||||
|
||||
counts = {
|
||||
areas: user.areas.count,
|
||||
|
|
@ -340,15 +332,15 @@ class Users::ExportData
|
|||
counts
|
||||
end
|
||||
|
||||
def create_zip_archive(export_directory, zip_file_path)
|
||||
def create_zip_archive(export_directory, zip_file_path)
|
||||
original_compression = Zip.default_compression
|
||||
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|
|
||||
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)
|
||||
end
|
||||
|
|
|
|||
|
|
@ -71,11 +71,15 @@ class Users::ImportData
|
|||
|
||||
Zip::File.open(archive_path) do |zip_file|
|
||||
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))
|
||||
|
||||
entry.extract(extraction_path)
|
||||
# Use destination_directory parameter for rubyzip 3.x compatibility
|
||||
entry.extract(entry.name, destination_directory: @import_directory)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -23,7 +23,12 @@ RSpec.describe Notification, type: :model do
|
|||
let(:unread_notification) { create(:notification, read_at: nil) }
|
||||
|
||||
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
|
||||
|
|
|
|||
|
|
@ -57,7 +57,7 @@ RSpec.describe Users::ExportData, type: :service do
|
|||
allow(export_record).to receive_message_chain(:file, :attach)
|
||||
|
||||
# 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_level=)
|
||||
allow(zip_file_double).to receive(:add)
|
||||
|
|
@ -108,7 +108,7 @@ RSpec.describe Users::ExportData, type: :service do
|
|||
end
|
||||
|
||||
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=).with(Zip::Entry::DEFLATED)
|
||||
expect(Zip).to receive(:default_compression=).with(-1) # Restoration
|
||||
|
|
|
|||
Loading…
Reference in a new issue