rspeed 0.5.2 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +23 -0
- data/README.md +3 -3
- data/lib/rspeed.rb +1 -0
- data/lib/rspeed/database.rb +11 -0
- data/lib/rspeed/differ.rb +55 -0
- data/lib/rspeed/env.rb +8 -8
- data/lib/rspeed/logger.rb +4 -2
- data/lib/rspeed/observer.rb +8 -8
- data/lib/rspeed/redis.rb +20 -12
- data/lib/rspeed/runner.rb +4 -4
- data/lib/rspeed/splitter.rb +12 -85
- data/lib/rspeed/variable.rb +9 -10
- data/lib/rspeed/version.rb +1 -1
- data/spec/models/rspeed/database/result_spec.rb +17 -0
- data/spec/models/rspeed/differ/actual_data_spec.rb +20 -0
- data/spec/models/rspeed/differ/actual_files_spec.rb +20 -0
- data/spec/models/rspeed/differ/added_data_spec.rb +19 -0
- data/spec/models/rspeed/differ/diff_spec.rb +51 -0
- data/spec/models/rspeed/differ/removed_data_spec.rb +20 -0
- data/spec/models/rspeed/differ/removed_time_spec.rb +14 -0
- data/spec/models/rspeed/env/{name_spec.rb → app_spec.rb} +4 -4
- data/spec/models/rspeed/env/spec_path_spec.rb +19 -0
- data/spec/models/rspeed/observer/after_suite_spec.rb +6 -28
- data/spec/models/rspeed/observer/before_suite_spec.rb +7 -6
- data/spec/models/rspeed/redis/clean_spec.rb +5 -5
- data/spec/models/rspeed/redis/destroy_spec.rb +7 -15
- data/spec/models/rspeed/redis/get_spec.rb +3 -1
- data/spec/models/rspeed/redis/keys_spec.rb +6 -22
- data/spec/models/rspeed/redis/list_spec.rb +19 -0
- data/spec/models/rspeed/redis/profiles_content_spec.rb +19 -0
- data/spec/models/rspeed/redis/set_spec.rb +3 -1
- data/spec/models/rspeed/redis/specs_finished_spec.rb +2 -2
- data/spec/models/rspeed/redis/specs_initiated_spec.rb +1 -1
- data/spec/models/rspeed/runner/run_spec.rb +9 -13
- data/spec/models/rspeed/splitter/append_spec.rb +1 -3
- data/spec/models/rspeed/splitter/consolidate_spec.rb +23 -0
- data/spec/models/rspeed/splitter/first_pipe_spec.rb +2 -4
- data/spec/models/rspeed/splitter/need_warm_question_spec.rb +8 -10
- data/spec/models/rspeed/splitter/pipe_files_spec.rb +3 -8
- data/spec/models/rspeed/splitter/split_spec.rb +5 -43
- data/spec/models/rspeed/variable/append_app_name_spec.rb +33 -0
- data/spec/models/rspeed/variable/key_spec.rb +4 -4
- data/spec/models/rspeed/variable/pipe_spec.rb +23 -0
- data/spec/models/rspeed/variable/pipes_pattern_spec.rb +1 -1
- data/spec/models/rspeed/variable/profile_pattern_spec.rb +1 -1
- data/spec/models/rspeed/variable/profile_spec.rb +23 -0
- data/spec/models/rspeed/variable/result_spec.rb +5 -5
- data/spec/spec_helper.rb +2 -2
- metadata +33 -25
- data/spec/fixtures/new_spec.rb.csv +0 -1
- data/spec/models/rspeed/env/result_key_spec.rb +0 -19
- data/spec/models/rspeed/splitter/actual_examples_spec.rb +0 -26
- data/spec/models/rspeed/splitter/append_question_spec.rb +0 -37
- data/spec/models/rspeed/splitter/diff_spec.rb +0 -30
- data/spec/models/rspeed/splitter/get_spec.rb +0 -60
- data/spec/models/rspeed/splitter/rename_spec.rb +0 -25
- data/spec/models/rspeed/variable/append_name_spec.rb +0 -19
- data/spec/models/rspeed/variable/default_partner_spec.rb +0 -5
- data/spec/models/rspeed/variable/pipe_name_spec.rb +0 -15
- data/spec/models/rspeed/variable/pipe_profile_spec.rb +0 -15
| @@ -0,0 +1,19 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            RSpec.describe RSpeed::Redis, '#list' do
         | 
| 4 | 
            +
              let!(:redis) { redis_object }
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              before do
         | 
| 7 | 
            +
                redis.rpush('key', { file: '1_spec.rb', time: 1.0 }.to_json)
         | 
| 8 | 
            +
                redis.rpush('key', { file: '2_spec.rb', time: 2.0 }.to_json)
         | 
| 9 | 
            +
                redis.rpush('key', { file: '3_spec.rb', time: 3.0 }.to_json)
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              it 'list all key entries' do
         | 
| 13 | 
            +
                expect(described_class.list('key')).to eq [
         | 
| 14 | 
            +
                  '{"file":"1_spec.rb","time":1.0}',
         | 
| 15 | 
            +
                  '{"file":"2_spec.rb","time":2.0}',
         | 
| 16 | 
            +
                  '{"file":"3_spec.rb","time":3.0}',
         | 
| 17 | 
            +
                ]
         | 
| 18 | 
            +
              end
         | 
| 19 | 
            +
            end
         | 
| @@ -0,0 +1,19 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            RSpec.describe RSpeed::Redis, '#profiles_content' do
         | 
| 4 | 
            +
              let!(:redis) { redis_object }
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              before do
         | 
| 7 | 
            +
                redis.rpush('rspeed:profile_01', { file: '1_spec.rb', time: 1.0 }.to_json)
         | 
| 8 | 
            +
                redis.rpush('rspeed:profile_02', { file: '2_spec.rb', time: 2.0 }.to_json)
         | 
| 9 | 
            +
                redis.rpush('rspeed:profile_03', { file: '3_spec.rb', time: 3.0 }.to_json)
         | 
| 10 | 
            +
              end
         | 
| 11 | 
            +
             | 
| 12 | 
            +
              it 'returns the content of all profiles keys' do
         | 
| 13 | 
            +
                expect(described_class.profiles_content).to eq [
         | 
| 14 | 
            +
                  '{"file":"1_spec.rb","time":1.0}',
         | 
| 15 | 
            +
                  '{"file":"2_spec.rb","time":2.0}',
         | 
| 16 | 
            +
                  '{"file":"3_spec.rb","time":3.0}',
         | 
| 17 | 
            +
                ]
         | 
| 18 | 
            +
              end
         | 
| 19 | 
            +
            end
         | 
| @@ -1,9 +1,11 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 |  | 
| 3 3 | 
             
            RSpec.describe RSpeed::Redis, '.set' do
         | 
| 4 | 
            +
              let!(:redis) { redis_object }
         | 
| 5 | 
            +
             | 
| 4 6 | 
             
              it 'sets a key on redis' do
         | 
| 5 7 | 
             
                described_class.set('key', 'value')
         | 
| 6 8 |  | 
| 7 | 
            -
                expect( | 
| 9 | 
            +
                expect(redis.get('key')).to eq('value')
         | 
| 8 10 | 
             
              end
         | 
| 9 11 | 
             
            end
         | 
| @@ -2,7 +2,7 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            RSpec.describe RSpeed::Redis, '.specs_finished?' do
         | 
| 4 4 | 
             
              before do
         | 
| 5 | 
            -
                described_class.set(' | 
| 5 | 
            +
                described_class.set('rspeed:pipe_01', '1.0')
         | 
| 6 6 |  | 
| 7 7 | 
             
                allow(RSpeed::Env).to receive(:pipes).and_return(2)
         | 
| 8 8 | 
             
              end
         | 
| @@ -12,7 +12,7 @@ RSpec.describe RSpeed::Redis, '.specs_finished?' do | |
| 12 12 | 
             
              end
         | 
| 13 13 |  | 
| 14 14 | 
             
              context 'when the quantity of pipe result is the same as the quantity of pipes' do
         | 
| 15 | 
            -
                before { described_class.set(' | 
| 15 | 
            +
                before { described_class.set('rspeed:pipe_02', '2.0') }
         | 
| 16 16 |  | 
| 17 17 | 
             
                it { expect(described_class.specs_finished?).to be(true) }
         | 
| 18 18 | 
             
              end
         | 
| @@ -6,7 +6,7 @@ RSpec.describe RSpeed::Redis, '.specs_initiated?' do | |
| 6 6 | 
             
              end
         | 
| 7 7 |  | 
| 8 8 | 
             
              context 'when has at least one pipe flag key' do
         | 
| 9 | 
            -
                before { described_class.set(' | 
| 9 | 
            +
                before { described_class.set('rspeed:pipe_01', '1.0') }
         | 
| 10 10 |  | 
| 11 11 | 
             
                it { expect(described_class.specs_finished?).to be(true) }
         | 
| 12 12 | 
             
              end
         | 
| @@ -2,20 +2,16 @@ | |
| 2 2 |  | 
| 3 3 | 
             
            RSpec.describe RSpeed::Runner, '#run' do
         | 
| 4 4 | 
             
              let!(:shell) { double('shell') }
         | 
| 5 | 
            -
              let!(:splitter) { instance_double('RSpeed::Splitter') }
         | 
| 6 5 |  | 
| 7 | 
            -
              before  | 
| 8 | 
            -
                allow(shell).to receive(:call)
         | 
| 9 | 
            -
                allow(RSpeed::Splitter).to receive(:new).and_return(splitter)
         | 
| 10 | 
            -
              end
         | 
| 6 | 
            +
              before { allow(shell).to receive(:call) }
         | 
| 11 7 |  | 
| 12 8 | 
             
              context 'when has result' do
         | 
| 13 9 | 
             
                before { allow(RSpeed::Redis).to receive(:result?).and_return(true) }
         | 
| 14 10 |  | 
| 15 11 | 
             
                context 'when is the first pipe' do
         | 
| 16 12 | 
             
                  before do
         | 
| 17 | 
            -
                    allow( | 
| 18 | 
            -
                    allow( | 
| 13 | 
            +
                    allow(RSpeed::Splitter).to receive(:first_pipe?).and_return(true)
         | 
| 14 | 
            +
                    allow(RSpeed::Splitter).to receive(:pipe_files).and_return('spec_1.rb spec_2.rb')
         | 
| 19 15 | 
             
                  end
         | 
| 20 16 |  | 
| 21 17 | 
             
                  it 'runs the pipe specs' do
         | 
| @@ -27,8 +23,8 @@ RSpec.describe RSpeed::Runner, '#run' do | |
| 27 23 |  | 
| 28 24 | 
             
                context 'when is not the first pipe' do
         | 
| 29 25 | 
             
                  before do
         | 
| 30 | 
            -
                    allow( | 
| 31 | 
            -
                    allow( | 
| 26 | 
            +
                    allow(RSpeed::Splitter).to receive(:first_pipe?).and_return(false)
         | 
| 27 | 
            +
                    allow(RSpeed::Splitter).to receive(:pipe_files).and_return('spec_1.rb spec_2.rb')
         | 
| 32 28 | 
             
                  end
         | 
| 33 29 |  | 
| 34 30 | 
             
                  it 'runs the pipe specs' do
         | 
| @@ -41,12 +37,12 @@ RSpec.describe RSpeed::Runner, '#run' do | |
| 41 37 |  | 
| 42 38 | 
             
              context 'when has no result' do
         | 
| 43 39 | 
             
                before do
         | 
| 44 | 
            -
                  allow( | 
| 45 | 
            -
                  allow( | 
| 40 | 
            +
                  allow(RSpeed::Splitter).to receive(:first_pipe?).and_return(false)
         | 
| 41 | 
            +
                  allow(RSpeed::Splitter).to receive(:pipe_files).and_return('spec_1.rb spec_2.rb')
         | 
| 46 42 | 
             
                end
         | 
| 47 43 |  | 
| 48 44 | 
             
                context 'when is the first pipe' do
         | 
| 49 | 
            -
                  before { allow( | 
| 45 | 
            +
                  before { allow(RSpeed::Splitter).to receive(:first_pipe?).and_return(true) }
         | 
| 50 46 |  | 
| 51 47 | 
             
                  it 'runs the pipe specs' do
         | 
| 52 48 | 
             
                    described_class.run(shell)
         | 
| @@ -57,7 +53,7 @@ RSpec.describe RSpeed::Runner, '#run' do | |
| 57 53 |  | 
| 58 54 | 
             
                context 'when is not the first pipe' do
         | 
| 59 55 | 
             
                  before do
         | 
| 60 | 
            -
                    allow( | 
| 56 | 
            +
                    allow(RSpeed::Splitter).to receive(:first_pipe?).and_return(false)
         | 
| 61 57 | 
             
                    allow(RSpeed::Observer).to receive(:after_suite)
         | 
| 62 58 | 
             
                  end
         | 
| 63 59 |  | 
| @@ -1,12 +1,10 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 |  | 
| 3 3 | 
             
            RSpec.describe RSpeed::Splitter, '#append' do
         | 
| 4 | 
            -
              subject(:splitter) { described_class.new }
         | 
| 5 | 
            -
             | 
| 6 4 | 
             
              let!(:redis) { redis_object }
         | 
| 7 5 |  | 
| 8 6 | 
             
              it 'appends file and time on rspeed key' do
         | 
| 9 | 
            -
                 | 
| 7 | 
            +
                described_class.append(
         | 
| 10 8 | 
             
                  items: [{ file: '1_spec.rb', time: 1 }.to_json, { file: '2_spec.rb', time: 2 }.to_json],
         | 
| 11 9 | 
             
                  key: 'rspeed'
         | 
| 12 10 | 
             
                )
         | 
| @@ -0,0 +1,23 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            RSpec.describe RSpeed::Splitter, '#consolidate' do
         | 
| 4 | 
            +
              let!(:redis) { redis_object }
         | 
| 5 | 
            +
             | 
| 6 | 
            +
              before do
         | 
| 7 | 
            +
                redis.rpush('rspeed', 'rspeed_content')
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                redis.rpush('rspeed:profile_01', { file: '1_spec.rb', time: 1.0 }.to_json)
         | 
| 10 | 
            +
                redis.rpush('rspeed:profile_02', { file: '2_spec.rb', time: 2.0 }.to_json)
         | 
| 11 | 
            +
                redis.rpush('rspeed:profile_03', { file: '3_spec.rb', time: 3.0 }.to_json)
         | 
| 12 | 
            +
              end
         | 
| 13 | 
            +
             | 
| 14 | 
            +
              it 'copies profiles to the result key cleanning the previous result' do
         | 
| 15 | 
            +
                described_class.consolidate
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                expect(redis.lrange('rspeed', 0, -1)).to eq [
         | 
| 18 | 
            +
                  '{"file":"1_spec.rb","time":1.0}',
         | 
| 19 | 
            +
                  '{"file":"2_spec.rb","time":2.0}',
         | 
| 20 | 
            +
                  '{"file":"3_spec.rb","time":3.0}',
         | 
| 21 | 
            +
                ]
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
            end
         | 
| @@ -1,17 +1,15 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 |  | 
| 3 3 | 
             
            RSpec.describe RSpeed::Splitter, '.first_pipe?' do
         | 
| 4 | 
            -
              subject(:splitter) { described_class.new }
         | 
| 5 | 
            -
             | 
| 6 4 | 
             
              context 'when pipe env is 1' do
         | 
| 7 5 | 
             
                before { allow(RSpeed::Env).to receive(:pipe).and_return 1 }
         | 
| 8 6 |  | 
| 9 | 
            -
                it { expect( | 
| 7 | 
            +
                it { expect(described_class.first_pipe?).to eq true }
         | 
| 10 8 | 
             
              end
         | 
| 11 9 |  | 
| 12 10 | 
             
              context 'when pipe env is not 1' do
         | 
| 13 11 | 
             
                before { allow(RSpeed::Env).to receive(:pipe).and_return 2 }
         | 
| 14 12 |  | 
| 15 | 
            -
                it { expect( | 
| 13 | 
            +
                it { expect(described_class.first_pipe?).to eq false }
         | 
| 16 14 | 
             
              end
         | 
| 17 15 | 
             
            end
         | 
| @@ -1,21 +1,19 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 |  | 
| 3 3 | 
             
            RSpec.describe RSpeed::Splitter, '#need_warm?' do
         | 
| 4 | 
            -
              subject(:splitter) { described_class.new }
         | 
| 5 | 
            -
             | 
| 6 4 | 
             
              context 'when has no result' do
         | 
| 7 5 | 
             
                before { allow(RSpeed::Redis).to receive(:result?).and_return(false) }
         | 
| 8 6 |  | 
| 9 7 | 
             
                context 'when is not the first pipe' do
         | 
| 10 | 
            -
                  before { allow( | 
| 8 | 
            +
                  before { allow(described_class).to receive(:first_pipe?).and_return(false) }
         | 
| 11 9 |  | 
| 12 | 
            -
                  it { expect( | 
| 10 | 
            +
                  it { expect(described_class.need_warm?).to be(false) }
         | 
| 13 11 | 
             
                end
         | 
| 14 12 |  | 
| 15 13 | 
             
                context 'when is the first pipe' do
         | 
| 16 | 
            -
                  before { allow( | 
| 14 | 
            +
                  before { allow(described_class).to receive(:first_pipe?).and_return(true) }
         | 
| 17 15 |  | 
| 18 | 
            -
                  it { expect( | 
| 16 | 
            +
                  it { expect(described_class.need_warm?).to be(true) }
         | 
| 19 17 | 
             
                end
         | 
| 20 18 | 
             
              end
         | 
| 21 19 |  | 
| @@ -23,15 +21,15 @@ RSpec.describe RSpeed::Splitter, '#need_warm?' do | |
| 23 21 | 
             
                before { allow(RSpeed::Redis).to receive(:result?).and_return(true) }
         | 
| 24 22 |  | 
| 25 23 | 
             
                context 'when is not the first pipe' do
         | 
| 26 | 
            -
                  before { allow( | 
| 24 | 
            +
                  before { allow(described_class).to receive(:first_pipe?).and_return(false) }
         | 
| 27 25 |  | 
| 28 | 
            -
                  it { expect( | 
| 26 | 
            +
                  it { expect(described_class.need_warm?).to be(false) }
         | 
| 29 27 | 
             
                end
         | 
| 30 28 |  | 
| 31 29 | 
             
                context 'when is the first pipe' do
         | 
| 32 | 
            -
                  before { allow( | 
| 30 | 
            +
                  before { allow(described_class).to receive(:first_pipe?).and_return(true) }
         | 
| 33 31 |  | 
| 34 | 
            -
                  it { expect( | 
| 32 | 
            +
                  it { expect(described_class.need_warm?).to be(false) }
         | 
| 35 33 | 
             
                end
         | 
| 36 34 | 
             
              end
         | 
| 37 35 | 
             
            end
         | 
| @@ -1,26 +1,21 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 |  | 
| 3 3 | 
             
            RSpec.describe RSpeed::Splitter, '#pipe_files' do
         | 
| 4 | 
            -
              let!(:shell) { double('shell') }
         | 
| 5 | 
            -
              let!(:splitter) { described_class.new }
         | 
| 6 | 
            -
             | 
| 7 | 
            -
              before { allow(RSpeed::Env).to receive(:pipe).and_return(1) }
         | 
| 8 | 
            -
             | 
| 9 4 | 
             
              context 'when has no result' do
         | 
| 10 5 | 
             
                before { allow(RSpeed::Redis).to receive(:result?).and_return(false) }
         | 
| 11 6 |  | 
| 12 | 
            -
                it { expect( | 
| 7 | 
            +
                it { expect(described_class.pipe_files).to be(nil) }
         | 
| 13 8 | 
             
              end
         | 
| 14 9 |  | 
| 15 10 | 
             
              context 'when has result' do
         | 
| 16 11 | 
             
                before do
         | 
| 17 12 | 
             
                  allow(RSpeed::Redis).to receive(:result?).and_return(true)
         | 
| 18 13 |  | 
| 19 | 
            -
                  allow( | 
| 14 | 
            +
                  allow(described_class).to receive(:split).and_return(rspeed_1: { files: [{ file: 'spec_1.rb' }, { file: 'spec_2.rb' }] })
         | 
| 20 15 | 
             
                end
         | 
| 21 16 |  | 
| 22 17 | 
             
                it 'returns the splitted pipe files' do
         | 
| 23 | 
            -
                  expect( | 
| 18 | 
            +
                  expect(described_class.pipe_files).to eq('spec_1.rb spec_2.rb')
         | 
| 24 19 | 
             
                end
         | 
| 25 20 | 
             
              end
         | 
| 26 21 | 
             
            end
         | 
| @@ -1,8 +1,8 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 |  | 
| 3 | 
            -
             | 
| 4 | 
            -
              subject(:splitter) { described_class.new }
         | 
| 3 | 
            +
            require 'support/env_mock'
         | 
| 5 4 |  | 
| 5 | 
            +
            RSpec.describe RSpeed::Splitter, '.split' do
         | 
| 6 6 | 
             
              let!(:unsorted_data) do
         | 
| 7 7 | 
             
                [
         | 
| 8 8 | 
             
                  { file: './spec/1_5_spec.rb', time: '1.5' },
         | 
| @@ -15,47 +15,9 @@ RSpec.describe RSpeed::Splitter, '.split' do | |
| 15 15 | 
             
                ]
         | 
| 16 16 | 
             
              end
         | 
| 17 17 |  | 
| 18 | 
            -
               | 
| 19 | 
            -
             | 
| 20 | 
            -
             | 
| 21 | 
            -
                it 'splits the times between the pipes' do
         | 
| 22 | 
            -
                  expect(splitter.split(unsorted_data)).to eq(
         | 
| 23 | 
            -
                    rspeed_1: {
         | 
| 24 | 
            -
                      files: [{ file: './spec/2_0_spec.rb', time: 2.0 }],
         | 
| 25 | 
            -
                      number: 1,
         | 
| 26 | 
            -
                      total: 2.0,
         | 
| 27 | 
            -
                    },
         | 
| 28 | 
            -
             | 
| 29 | 
            -
                    rspeed_2: {
         | 
| 30 | 
            -
                      files: [
         | 
| 31 | 
            -
                        { file: './spec/1_5_spec.rb', time: 1.5 },
         | 
| 32 | 
            -
                        { file: './spec/0_4_spec.rb', time: 0.4 },
         | 
| 33 | 
            -
                        { file: './spec/0_2_spec.rb', time: 0.2 },
         | 
| 34 | 
            -
                      ],
         | 
| 35 | 
            -
             | 
| 36 | 
            -
                      number: 2,
         | 
| 37 | 
            -
                      total: 1.5 + 0.4 + 0.2, # 1.5 -> 1.9 -> 2.1
         | 
| 38 | 
            -
                    },
         | 
| 39 | 
            -
             | 
| 40 | 
            -
                    rspeed_3: {
         | 
| 41 | 
            -
                      files: [
         | 
| 42 | 
            -
                        { file: './spec/1_1_spec.rb', time: 1.1 },
         | 
| 43 | 
            -
                        { file: './spec/0_7_spec.rb', time: 0.7 },
         | 
| 44 | 
            -
                        { file: './spec/0_3_spec.rb', time: 0.3 },
         | 
| 45 | 
            -
                      ],
         | 
| 46 | 
            -
             | 
| 47 | 
            -
                      number: 3,
         | 
| 48 | 
            -
                      total: 1.1 + 0.7 + 0.3, # 1.1 -> 1.8 -> 2.1
         | 
| 49 | 
            -
                    }
         | 
| 50 | 
            -
                  )
         | 
| 51 | 
            -
                end
         | 
| 52 | 
            -
              end
         | 
| 53 | 
            -
             | 
| 54 | 
            -
              context 'when diff is not given' do
         | 
| 55 | 
            -
                before { allow(splitter).to receive(:diff).and_return(unsorted_data) }
         | 
| 56 | 
            -
             | 
| 57 | 
            -
                it 'splits the diff result into times between the pipes' do
         | 
| 58 | 
            -
                  expect(splitter.split).to eq(
         | 
| 18 | 
            +
              it 'splits the times between the pipes' do
         | 
| 19 | 
            +
                EnvMock.mock(rspeed_pipes: 3) do
         | 
| 20 | 
            +
                  expect(described_class.split(data: unsorted_data)).to eq(
         | 
| 59 21 | 
             
                    rspeed_1: {
         | 
| 60 22 | 
             
                      files: [{ file: './spec/2_0_spec.rb', time: 2.0 }],
         | 
| 61 23 | 
             
                      number: 1,
         | 
| @@ -0,0 +1,33 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'support/env_mock'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            RSpec.describe RSpeed::Variable, '.append_app_name' do
         | 
| 6 | 
            +
              context 'when env app is given' do
         | 
| 7 | 
            +
                it 'appends the rspeed app name on the given value' do
         | 
| 8 | 
            +
                  EnvMock.mock(rspeed_app: 'app') do
         | 
| 9 | 
            +
                    expect(described_class.append_app_name('value')).to eq('value_app')
         | 
| 10 | 
            +
                  end
         | 
| 11 | 
            +
                end
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                context 'when a plus is given' do
         | 
| 14 | 
            +
                  it 'appends the rspeed app name on the given value with the plus value' do
         | 
| 15 | 
            +
                    EnvMock.mock(rspeed_app: 'app', plus: 'plus') do
         | 
| 16 | 
            +
                      expect(described_class.append_app_name('value', plus: 'plus')).to eq('value_app_plus')
         | 
| 17 | 
            +
                    end
         | 
| 18 | 
            +
                  end
         | 
| 19 | 
            +
                end
         | 
| 20 | 
            +
              end
         | 
| 21 | 
            +
             | 
| 22 | 
            +
              context 'when env app is not given' do
         | 
| 23 | 
            +
                it 'uses just the given string' do
         | 
| 24 | 
            +
                  expect(described_class.append_app_name('value')).to eq('value')
         | 
| 25 | 
            +
                end
         | 
| 26 | 
            +
             | 
| 27 | 
            +
                context 'when a plus is given' do
         | 
| 28 | 
            +
                  it 'appends the plus value' do
         | 
| 29 | 
            +
                    expect(described_class.append_app_name('value', plus: 'plus')).to eq('value_plus')
         | 
| 30 | 
            +
                  end
         | 
| 31 | 
            +
                end
         | 
| 32 | 
            +
              end
         | 
| 33 | 
            +
            end
         | 
| @@ -5,10 +5,10 @@ require 'support/env_mock' | |
| 5 5 | 
             
            RSpec.describe RSpeed::Variable, '.key' do
         | 
| 6 6 | 
             
              it { expect(described_class.key(1)).to be(:rspeed_1) }
         | 
| 7 7 |  | 
| 8 | 
            -
              context 'when env  | 
| 9 | 
            -
                it 'includes the  | 
| 10 | 
            -
                  EnvMock.mock( | 
| 11 | 
            -
                    expect(described_class.key(1)).to be(: | 
| 8 | 
            +
              context 'when env app is given' do
         | 
| 9 | 
            +
                it 'includes the app' do
         | 
| 10 | 
            +
                  EnvMock.mock(rspeed_app: 'app') do
         | 
| 11 | 
            +
                    expect(described_class.key(1)).to be(:rspeed_app_1)
         | 
| 12 12 | 
             
                  end
         | 
| 13 13 | 
             
                end
         | 
| 14 14 | 
             
              end
         | 
| @@ -0,0 +1,23 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'support/env_mock'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            RSpec.describe RSpeed::Variable, '.pipe' do
         | 
| 6 | 
            +
              it { expect(described_class.pipe).to eq('rspeed:pipe_01') }
         | 
| 7 | 
            +
             | 
| 8 | 
            +
              context 'when env name is given' do
         | 
| 9 | 
            +
                it 'includes the name' do
         | 
| 10 | 
            +
                  EnvMock.mock(rspeed_app: 'app') do
         | 
| 11 | 
            +
                    expect(described_class.pipe).to eq('rspeed:pipe_app_01')
         | 
| 12 | 
            +
                  end
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              context 'when pipe is bigger than 9' do
         | 
| 17 | 
            +
                it 'does not prefix zero on the number' do
         | 
| 18 | 
            +
                  EnvMock.mock(rspeed_pipe: 10) do
         | 
| 19 | 
            +
                    expect(described_class.pipe).to eq('rspeed:pipe_10')
         | 
| 20 | 
            +
                  end
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
            end
         | 
| @@ -0,0 +1,23 @@ | |
| 1 | 
            +
            # frozen_string_literal: true
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            require 'support/env_mock'
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            RSpec.describe RSpeed::Variable, '.profile' do
         | 
| 6 | 
            +
              it { expect(described_class.profile).to eq('rspeed:profile_01') }
         | 
| 7 | 
            +
             | 
| 8 | 
            +
              context 'when env name is given' do
         | 
| 9 | 
            +
                it 'includes the name' do
         | 
| 10 | 
            +
                  EnvMock.mock(rspeed_app: 'name') do
         | 
| 11 | 
            +
                    expect(described_class.profile).to eq('rspeed:profile_name_01')
         | 
| 12 | 
            +
                  end
         | 
| 13 | 
            +
                end
         | 
| 14 | 
            +
              end
         | 
| 15 | 
            +
             | 
| 16 | 
            +
              context 'when pipe is bigger than 9' do
         | 
| 17 | 
            +
                it 'does not prefix zero on the number' do
         | 
| 18 | 
            +
                  EnvMock.mock(rspeed_pipe: 10) do
         | 
| 19 | 
            +
                    expect(described_class.profile).to eq('rspeed:profile_10')
         | 
| 20 | 
            +
                  end
         | 
| 21 | 
            +
                end
         | 
| 22 | 
            +
              end
         | 
| 23 | 
            +
            end
         |