Sha256: 0879da69cc43df53da38b2bc03724f69da79efe6653ce41ea2d30e1895ef7044

Contents?: true

Size: 1.28 KB

Versions: 3

Compression:

Stored size: 1.28 KB

Contents

# frozen_string_literal: true

RSpec.describe RSpeed::Splitter, '#diff' do
  subject(:splitter) { described_class.new(specs_path: './spec/fixtures/*_spec.rb') }

  let!(:redis) { redis_object }

  before do
    redis.lpush 'rspeed', { file: './spec/fixtures/1_spec.rb:4', time: '1.4' }.to_json
    redis.lpush 'rspeed', { file: './spec/fixtures/1_spec.rb:6', time: '1.6' }.to_json
    redis.lpush 'rspeed', { file: './spec/fixtures/1_spec.rb:8', time: '1.8' }.to_json
    redis.lpush 'rspeed', { file: './spec/fixtures/2_spec.rb:4', time: '2.4' }.to_json
    redis.lpush 'rspeed', { file: './spec/fixtures/2_spec.rb:666', time: '6' }.to_json
    redis.lpush 'rspeed', { file: './spec/fixtures/x_spec.rb:1', time: 3 }.to_json

    File.open('spec/fixtures/new_spec.rb', 'a') { |file| file.write('it') }
  end

  after { delete_file('spec/fixtures/new_spec.rb') }

  it 'removes removed specs and adds new spec and keeps keeped specs based on rspeed key values' do
    expect(splitter.diff).to eq [
      { file: './spec/fixtures/2_spec.rb:4', time: '2.4' },
      { file: './spec/fixtures/1_spec.rb:8', time: '1.8' },
      { file: './spec/fixtures/1_spec.rb:6', time: '1.6' },
      { file: './spec/fixtures/1_spec.rb:4', time: '1.4' },
      { file: './spec/fixtures/new_spec.rb:1', time: 0 },
    ]
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rspeed-0.5.2 spec/models/rspeed/splitter/diff_spec.rb
rspeed-0.5.1 spec/models/rspeed/splitter/diff_spec.rb
rspeed-0.5.0 spec/models/rspeed/splitter/diff_spec.rb