Sha256: 912a94b3c5dee368c670ad3867c0eadeecc429a26332e1125240bebc2ff4a7b4

Contents?: true

Size: 1.46 KB

Versions: 1

Compression:

Stored size: 1.46 KB

Contents

# frozen_string_literal: true

RSpec.describe RSpeed::Observer, '.after_suite' do
  let!(:splitter) { instance_double('RSpeed::Splitter') }

  before do
    allow(RSpeed::Splitter).to receive(:new).and_return(splitter)
    allow(splitter).to receive(:append)
  end

  context 'when append? returns false' do
    before do
      allow(splitter).to receive(:append?).and_return(false)
      allow(splitter).to receive(:rename)
    end

    it 'does not append the time result' do
      described_class.after_suite

      expect(splitter).not_to have_received(:append)
    end
  end

  context 'when all specs is not finished' do
    before do
      allow(splitter).to receive(:append?)
      allow(RSpeed::Redis).to receive(:specs_finished?).and_return(false)
    end

    it 'sets true on pipe key to indicates that its finished' do
      described_class.after_suite

      expect(RSpeed::Redis.get('rspeed_pipe_1')).to eq('true')
    end
  end

  context 'when all specs finished' do
    before do
      allow(splitter).to receive(:append?)
      allow(RSpeed::Redis).to receive(:specs_finished?).and_return(true)
      allow(splitter).to receive(:rename)
      allow(RSpeed::Redis).to receive(:clean)
    end

    it 'consolidates profiles' do
      described_class.after_suite

      expect(splitter).to have_received(:rename)
    end

    it 'destroyes pipe finished flag keys' do
      described_class.after_suite

      expect(RSpeed::Redis).to have_received(:clean)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rspeed-0.5.2 spec/models/rspeed/observer/after_suite_spec.rb