spec/spec_helper.rb in sequenceserver-1.1.0.beta12 vs spec/spec_helper.rb in sequenceserver-2.0.0.beta1
- old
+ new
@@ -1,4 +1,63 @@
require 'simplecov'
+require 'capybara/rspec'
+require 'selenium-webdriver'
+
+require_relative 'download_helper'
+
+# Start SimpleCov.
SimpleCov.start
+# Load SequenceServer in testing mode.
+ENV['RACK_ENV'] = 'test'
require 'sequenceserver'
+
+# For the purpose of testing, set DOTDIR to spec/dotdir.
+SequenceServer::DOTDIR = File.join(__dir__, 'dotdir')
+
+RSpec.configure do |config|
+ # Explicitly enable should syntax of rspec.
+ config.expect_with :rspec do |expectations|
+ expectations.syntax = [:should, :expect]
+ end
+
+ # To use url_encode function in import_spec.
+ config.include ERB::Util, type: :feature
+
+ # For file downloading.
+ config.include DownloadHelpers, type: :feature
+
+ # Setup capybara tests.
+ config.before :context, type: :feature do
+ Capybara.app = SequenceServer.init
+ Capybara.server = :webrick
+ Capybara.default_max_wait_time = 10
+
+ Capybara.register_driver :selenium do |app|
+ options = Selenium::WebDriver::Firefox::Options.new
+
+ # Run the browser in headless mode.
+ options.args << '--headless'
+
+ # Tell the browser where to save downloaded files.
+ options.profile = Selenium::WebDriver::Firefox::Profile.new
+ options.profile['browser.download.dir'] = downloads_dir
+ options.profile['browser.download.folderList'] = 2
+
+ # Suppress "open with / save" dialog for FASTA, XML, and TSV file types.
+ options.profile['browser.helperApps.neverAsk.saveToDisk'] =
+ 'text/fasta,text/xml,text/tsv'
+
+ Capybara::Selenium::Driver.new(app, browser: :firefox, options: options)
+ end
+
+ FileUtils.mkdir_p downloads_dir
+ end
+
+ config.after :example, type: :feature do
+ clear_downloads
+ end
+
+ config.after :context, type: :feature do
+ FileUtils.rm_rf Dir[SequenceServer::DOTDIR + '/*-*-*-*-*']
+ end
+end