Sha256: 720be7a57305e2438d4c96fef81b727854f35386e9c1b2a1c679cb2a5bc25c76

Contents?: true

Size: 1.07 KB

Versions: 15

Compression:

Stored size: 1.07 KB

Contents

shared_context 'with a generated app' do
  let(:app_name) { 'my_test_app' }
  let(:options) { {} }
  let(:app_port) { 9292 }
  let(:args) { [app_name] }

  before(:each) do
    scaffold = Gris::CLI::Base.new(args, options)
    scaffold.invoke(:new)
    prepare_app
  end

  after(:each) do
    @app.stop
    cleanup_generated_app
  end

  def prepare_app
    Bundler.with_clean_env do
      project = ChildProcess.build('bundle', 'install')
      project.io.inherit!
      project.cwd = app_name
      project.start
      project.wait
      begin
        project.poll_for_exit(10)
        start_app
      rescue ChildProcess::TimeoutError
        project.stop
      end
    end
  end

  def start_app
    @app = ChildProcess.build('bundle', 'exec', 'rackup')
    @app.environment['PERMITTED_TOKENS'] = 'replace-me'
    @app.io.inherit!
    @app.cwd = app_name
    @app.start
    sleep(1) while !listening_on?(app_port) && @app.alive?
  end

  def listening_on?(port)
    system("netstat -an | grep #{port} | grep LISTEN")
  end

  def cleanup_generated_app
    FileUtils.rm_rf(args[0])
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
gris-0.4.3 spec/support/integration_setup.rb
gris-0.4.2 spec/support/integration_setup.rb
gris-0.4.0 spec/support/integration_setup.rb
gris-0.3.9 spec/support/integration_setup.rb
gris-0.3.8 spec/support/integration_setup.rb
gris-0.3.7 spec/support/integration_setup.rb
gris-0.3.6 spec/support/integration_setup.rb
gris-0.3.4 spec/support/integration_setup.rb
gris-0.3.3 spec/support/integration_setup.rb
gris-0.3.2 spec/support/integration_setup.rb
gris-0.3.1 spec/support/integration_setup.rb
gris-0.3.0 spec/support/integration_setup.rb
gris-0.2.4 spec/support/integration_setup.rb
gris-0.2.3 spec/support/integration_setup.rb
gris-0.2.2 spec/support/integration_setup.rb