Sha256: 166d7851e941f92a11dee17208f00b62b7969f4e40d90708f40b99c44def3f06

Contents?: true

Size: 1.26 KB

Versions: 5

Compression:

Stored size: 1.26 KB

Contents

RSpec.describe Mutant::Reporter::CLI::Tput do
  describe '.detect' do
    subject { described_class.detect }

    def expect_command(command, stdout, success)
      allow(Open3).to receive(:capture3).with(command).and_return(
        [
          stdout,
          instance_double(IO),
          instance_double(Process::Status, success?: success)
        ]
      )
    end

    let(:tput_reset?) { true }
    let(:tput_sc?)    { true }
    let(:tput_rc?)    { true }
    let(:tput_ed?)    { true }

    before do
      expect_command('tput reset', '[reset]', tput_reset?)
      expect_command('tput sc', '[sc]', tput_sc?)
      expect_command('tput rc', '[rc]', tput_rc?)
      expect_command('tput ed', '[ed]', tput_ed?)
    end

    context 'when all tput commands are supported' do
      its(:prepare) { should eql('[reset][sc]') }
      its(:restore) { should eql('[rc][ed]')    }
    end

    context 'when tput reset fails' do
      let(:tput_reset?) { false }

      it { should be(nil) }
    end

    context 'when ed fails' do
      let(:tput_ed?) { false }
      let(:tput_cd?) { true }
      before do
        expect_command('tput cd', '[cd]', tput_cd?)
      end
      its(:prepare) { should eql('[reset][sc]') }
      its(:restore) { should eql('[rc][cd]')    }
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
mutant-0.8.16 spec/unit/mutant/reporter/cli/tput_spec.rb
mutant-0.8.15 spec/unit/mutant/reporter/cli/tput_spec.rb
mutant-0.8.14 spec/unit/mutant/reporter/cli/tput_spec.rb
mutant-0.8.13 spec/unit/mutant/reporter/cli/tput_spec.rb
mutant-0.8.12 spec/unit/mutant/reporter/cli/tput_spec.rb