Sha256: e4650ada2939e47b601c93f370bf5938b2e0bb552b7e68e2ddc79d758013b07e

Contents?: true

Size: 1.33 KB

Versions: 3

Compression:

Stored size: 1.33 KB

Contents

require 'childprocess'
require File.expand_path('../../spec_helper', __FILE__)
require File.expand_path('../../../lib/rest-assured/api/app_session', __FILE__)

module RestAssured
  describe AppSession do
    context 'either without spork or outside prefork block' do
      before do
        AppSession.any_instance.stub(:running_in_spork? => false)
      end

      it 'start application in subprocess' do
        state = ''
        Utils::Subprocess.should_receive(:new) do |&block|
          state << 'called from block'
          block.call
          state = ''
        end
        AppRunner.should_receive(:run!) do
          state.should == 'called from block'
        end

        AppSession.new
      end
    end

    context 'within spork prefork block' do
      before do
        AppSession.any_instance.stub(:running_in_spork? => true)
      end

      it 'starts application in childprocess' do
        cmdargs = %w{-d :memory: -p 6666}
        Config.stub(:to_cmdargs => cmdargs)

        ChildProcess.should_receive(:build).with('rest-assured', *cmdargs).and_return(child = mock(:io => mock))

        state = ''
        child.io.should_receive(:inherit!) do
          state.should_not == 'started'
        end
        child.should_receive(:start) do
          state << 'started'
        end

        AppSession.new
      end

    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rest-assured-1.1.0 spec/api/app_session_spec.rb
rest-assured-1.0.0 spec/api/app_session_spec.rb
rest-assured-1.0.0.rc2 spec/api/app_session_spec.rb