Sha256: c5c1ca2d8c68f693a4dd18211bace4be2d95b7c071bc897f72a59db6b15f8255

Contents?: true

Size: 1.2 KB

Versions: 1

Compression:

Stored size: 1.2 KB

Contents

module KatapultRailsHelper

  def with_aruba_timeout(timeout, &block)
    original_aruba_timeout = aruba.config.exit_timeout
    aruba.config.exit_timeout = timeout.to_i
    # print "(timeout: #{ timeout })"

    block.call
  ensure
    aruba.config.exit_timeout = original_aruba_timeout
  end

  def create_cached_app(name)
    job = 'Cached Rails app generation'
    rails_new_command = "bundle exec rails new #{name} --skip-test-unit --skip-bundle --database mysql"

    puts "#{job} started (in #{Dir.pwd})"
    system(rails_new_command) or raise "#{job} failed"
    puts "#{job} done."
  end

  def ensure_bundled(path)
    Dir.chdir(path) do
      Bundler.with_clean_env do
        system('bundle check > /dev/null 2>&1') or system('bundle install')
      end
    end
  end

end
World(KatapultRailsHelper)


Given /^a pristine Rails application$/ do
  with_aruba_timeout(120) do
    Dir.chdir('tmp') do
      create_cached_app('cached_test_app') unless File.directory?('cached_test_app')
      ensure_bundled('cached_test_app')
    end

    # copy cached app to aruba directory
    FileUtils.cp_r 'tmp/cached_test_app', File.join(expand_path('.'), 'katapult_test_app')
    cd 'katapult_test_app' # Aruba::Api method
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
katapult-0.1.2 features/step_definitions/rails_steps.rb