X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/df8de1bd9a517a1a3bfac0f8ab9ace41524d4b39..3063c6106a83102214deb9d86ec621c0bb85d4b7:/apps/workbench/test/integration_helper.rb diff --git a/apps/workbench/test/integration_helper.rb b/apps/workbench/test/integration_helper.rb index b3d9f01444..88aec2ca69 100644 --- a/apps/workbench/test/integration_helper.rb +++ b/apps/workbench/test/integration_helper.rb @@ -4,19 +4,12 @@ require 'capybara/poltergeist' require 'uri' require 'yaml' -$ARV_API_SERVER_DIR = File.expand_path('../../../../services/api', __FILE__) - class ActionDispatch::IntegrationTest # Make the Capybara DSL available in all integration tests include Capybara::DSL + include ApiFixtureLoader - def self.api_fixture(name) - # Returns the data structure from the named API server test fixture. - path = File.join($ARV_API_SERVER_DIR, 'test', 'fixtures', "#{name}.yml") - YAML.load(IO.read(path)) - end - - @@API_AUTHS = api_fixture('api_client_authorizations') + @@API_AUTHS = self.api_fixture('api_client_authorizations') def page_with_token(token, path='/') # Generate a page path with an embedded API token. @@ -30,32 +23,3 @@ class ActionDispatch::IntegrationTest "#{path}#{sep}#{q_string}" end end - -class IntegrationTestRunner < MiniTest::Unit - # Launch the API server in test mode, with appropriate environment. - @@APIENV = {'RAILS_ENV' => 'test'} - ['GEM_HOME', 'GEM_PATH', 'PATH'].each { |key| @@APIENV[key] = ENV[key] } - - def _system(*cmd) - if not system(@@APIENV, *cmd, {unsetenv_others: true}) - raise RuntimeError, "#{cmd[0]} returned exit code #{$?.exitstatus}" - end - end - - def _run(args=[]) - Capybara.javascript_driver = :poltergeist - server_pid = Dir.chdir($ARV_API_SERVER_DIR) do |apidir| - _system('bundle', 'exec', 'rake', 'db:test:load') - _system('bundle', 'exec', 'rake', 'db:fixtures:load') - _system('bundle', 'exec', 'rails', 'server', '-d') - `cat tmp/pids/server.pid`.to_i - end - begin - super(args) - ensure - Process.kill('TERM', server_pid) - end - end -end - -MiniTest::Unit.runner = IntegrationTestRunner.new