38 lines
556 B
Ruby
38 lines
556 B
Ruby
# frozen_string_literal: true
|
|
|
|
module DownloadHelpers
|
|
TIMEOUT = 2
|
|
|
|
extend self
|
|
|
|
def downloads
|
|
Dir[Capybara.save_path.join("*.zip")]
|
|
end
|
|
|
|
def download
|
|
downloads.first
|
|
end
|
|
|
|
def download_content
|
|
wait_for_download
|
|
File.read(download)
|
|
end
|
|
|
|
def wait_for_download
|
|
Timeout.timeout(TIMEOUT) do
|
|
sleep 0.1 until downloaded?
|
|
end
|
|
end
|
|
|
|
def downloaded?
|
|
!downloading? && downloads.any?
|
|
end
|
|
|
|
def downloading?
|
|
downloads.grep(/\.part$/).any?
|
|
end
|
|
|
|
def clear_downloads
|
|
FileUtils.rm_f(downloads)
|
|
end
|
|
end
|