Sha256: 04e24ea2387ccec405ed9900e512aac8c7675fc4c006c4b72a084966037245dd

Contents?: true

Size: 1.53 KB

Versions: 4

Compression:

Stored size: 1.53 KB

Contents

# frozen_string_literal: true

require 'spec_helper'
require 'sigurd/executor'

RSpec.describe Sigurd::Executor do

  let(:executor) { described_class.new(runners) }
  let(:runners) { (1..2).map { |i| TestRunners::TestRunner.new(i) } }

  it 'starts and stops configured runners' do
    runners.each do |r|
      expect(r.started).to be_falsey
      expect(r.stopped).to be_falsey
    end
    executor.start
    wait_for do
      runners.each do |r|
        expect(r.started).to be_truthy
        expect(r.stopped).to be_falsey
      end
      executor.stop
      runners.each do |r|
        expect(r.started).to be_truthy
        expect(r.stopped).to be_truthy
      end
    end
  end

  it 'sleeps X seconds' do
    executor = described_class.new(runners, sleep_seconds: 5)
    allow(executor).to receive(:handle_crashed_runner).and_call_original
    expect(executor).to receive(:sleep).with(5).twice
    runners.each { |r| r.should_error = true }
    executor.start
    wait_for do
      runners.each { |r| expect(r.started).to be_truthy }
      executor.stop
    end
  end

  it 'reconnects crashed runners' do
    allow(executor).to receive(:handle_crashed_runner).and_call_original
    runners.each { |r| r.should_error = true }
    executor.start
    wait_for do
      expect(executor).to have_received(:handle_crashed_runner).with(runners[0], anything, 0).once
      expect(executor).to have_received(:handle_crashed_runner).with(runners[1], anything, 0).once
      runners.each { |r| expect(r.started).to be_truthy }
      executor.stop
    end
  end

end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
sigurd-0.1.0 spec/executor_spec.rb
sigurd-0.0.3 spec/executor_spec.rb
sigurd-0.0.2 spec/executor_spec.rb
sigurd-0.0.1 spec/executor_spec.rb