Files
openfoodnetwork/spec/support/downloads_helper.rb
filipefurtad0 25108f4c70 Removes all fixture files; asserts on downloaded file
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
2023-03-29 16:24:21 +11:00

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