Sha256: 8f06acf45f7b1ce048028b916e91bb0189d5db0aaa0730e8cab281a9fe6fa79f

Contents?: true

Size: 1.42 KB

Versions: 7

Compression:

Stored size: 1.42 KB

Contents

describe KnapsackPro::Runners::SpinachRunner do
  subject { described_class.new(KnapsackPro::Adapters::SpinachAdapter) }

  it { should be_kind_of KnapsackPro::Runners::BaseRunner }

  describe '.run' do
    let(:args) { '--custom-arg' }

    after { described_class.run(args) }

    before do
      stub_const("ENV", { 'KNAPSACK_PRO_TEST_SUITE_TOKEN_SPINACH' => 'spinach-token' })

      stringify_test_file_paths = 'features/a.feature features/b.feature'
      runner = instance_double(described_class,
                               stringify_test_file_paths: stringify_test_file_paths)
      expect(described_class).to receive(:new)
      .with(KnapsackPro::Adapters::SpinachAdapter).and_return(runner)

      expect(Kernel).to receive(:system).with('KNAPSACK_PRO_RECORDING_ENABLED=true KNAPSACK_PRO_TEST_SUITE_TOKEN=spinach-token bundle exec spinach --custom-arg -- features/a.feature features/b.feature')
    end

    context 'when command exit with success code' do
      let(:exitstatus) { 0 }

      before do
        expect($?).to receive(:exitstatus).and_return(exitstatus)
      end

      it do
        expect(Kernel).not_to receive(:exit)
      end
    end

    context 'when command exit without success code' do
      let(:exitstatus) { 1 }

      before do
        expect($?).to receive(:exitstatus).twice.and_return(exitstatus)
      end

      it do
        expect(Kernel).to receive(:exit).with(exitstatus)
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
knapsack_pro-0.14.0 spec/knapsack_pro/runners/spinach_runner_spec.rb
knapsack_pro-0.13.0 spec/knapsack_pro/runners/spinach_runner_spec.rb
knapsack_pro-0.12.0 spec/knapsack_pro/runners/spinach_runner_spec.rb
knapsack_pro-0.11.0 spec/knapsack_pro/runners/spinach_runner_spec.rb
knapsack_pro-0.10.0 spec/knapsack_pro/runners/spinach_runner_spec.rb
knapsack_pro-0.9.0 spec/knapsack_pro/runners/spinach_runner_spec.rb
knapsack_pro-0.8.0 spec/knapsack_pro/runners/spinach_runner_spec.rb