mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-31 21:37:16 +00:00
Changes helper method to assert there is one file only load_file_txt will be useful in other spec files too, and could probably be moved to spec/support/file_helper.rb
45 lines
847 B
Ruby
45 lines
847 B
Ruby
# frozen_string_literal: true
|
|
|
|
module DownloadsHelper
|
|
TIMEOUT = 10
|
|
|
|
def self.path
|
|
Rails.root.join("tmp", "capybara")
|
|
end
|
|
|
|
def downloaded_filename
|
|
wait_for_download
|
|
expect(downloaded_filenames.length).to eq(1) # downloads folder should contain 1 file
|
|
downloaded_filenames.first
|
|
end
|
|
|
|
def downloaded_content
|
|
wait_for_download
|
|
File.read(downloaded_filename)
|
|
end
|
|
|
|
private
|
|
|
|
def downloaded_filenames
|
|
Dir[DownloadsHelper.path.join("*")].select { |f| File.file?(f) }
|
|
end
|
|
|
|
def wait_for_download
|
|
Timeout.timeout(TIMEOUT) do
|
|
sleep 0.1 until downloaded?
|
|
end
|
|
end
|
|
|
|
def downloaded?
|
|
!downloading? && downloaded_filenames.any?
|
|
end
|
|
|
|
def downloading?
|
|
downloaded_filenames.grep(/\.crdownload$/).any?
|
|
end
|
|
|
|
def remove_downloaded_files
|
|
FileUtils.rm_f(downloaded_filenames)
|
|
end
|
|
end
|