rspeed 0.2.0 → 0.5.2
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 +31 -0
- data/README.md +10 -7
- data/lib/generators/rspeed/install_generator.rb +1 -1
- data/lib/rspeed.rb +8 -7
- data/lib/rspeed/env.rb +39 -0
- data/lib/rspeed/extension.rb +3 -2
- data/lib/rspeed/logger.rb +11 -0
- data/lib/rspeed/observer.rb +21 -6
- data/lib/rspeed/redis.rb +64 -0
- data/lib/rspeed/runner.rb +5 -16
- data/lib/rspeed/splitter.rb +66 -71
- data/lib/rspeed/variable.rb +31 -0
- data/lib/rspeed/version.rb +1 -1
- data/spec/common_helper.rb +10 -0
- data/spec/fixtures/1_spec.rb +9 -0
- data/spec/fixtures/2_spec.rb +5 -0
- data/spec/fixtures/empty.rb +4 -0
- data/spec/fixtures/new_spec.rb.csv +1 -0
- data/spec/models/rspeed/env/db_spec.rb +17 -0
- data/spec/models/rspeed/env/host_spec.rb +17 -0
- data/spec/models/rspeed/env/name_spec.rb +17 -0
- data/spec/models/rspeed/env/pipe_spec.rb +19 -0
- data/spec/models/rspeed/env/pipes_spec.rb +19 -0
- data/spec/models/rspeed/env/port_spec.rb +17 -0
- data/spec/models/rspeed/env/result_key_spec.rb +19 -0
- data/spec/models/rspeed/env/rspeed_spec.rb +43 -0
- data/spec/models/rspeed/observer/after_spec.rb +5 -5
- data/spec/models/rspeed/observer/after_suite_spec.rb +57 -0
- data/spec/models/rspeed/observer/before_spec.rb +0 -2
- data/spec/models/rspeed/observer/before_suite_spec.rb +17 -6
- data/spec/models/rspeed/redis/clean_spec.rb +20 -0
- data/spec/models/rspeed/redis/client_spec.rb +7 -0
- data/spec/models/rspeed/redis/destroy_spec.rb +29 -0
- data/spec/models/rspeed/redis/get_spec.rb +9 -0
- data/spec/models/rspeed/redis/keys_spec.rb +29 -0
- data/spec/models/rspeed/redis/result_spec.rb +13 -0
- data/spec/models/rspeed/redis/set_spec.rb +9 -0
- data/spec/models/rspeed/redis/specs_finished_spec.rb +19 -0
- data/spec/models/rspeed/redis/specs_initiated_spec.rb +13 -0
- data/spec/models/rspeed/runner/run_spec.rb +77 -0
- data/spec/models/rspeed/splitter/actual_examples_spec.rb +26 -0
- data/spec/models/rspeed/splitter/append_question_spec.rb +37 -0
- data/spec/models/rspeed/splitter/append_spec.rb +9 -27
- data/spec/models/rspeed/splitter/diff_spec.rb +15 -14
- data/spec/models/rspeed/splitter/first_pipe_spec.rb +2 -4
- data/spec/models/rspeed/splitter/get_spec.rb +6 -22
- data/spec/models/rspeed/splitter/need_warm_question_spec.rb +37 -0
- data/spec/models/rspeed/splitter/pipe_files_spec.rb +26 -0
- data/spec/models/rspeed/splitter/rename_spec.rb +13 -6
- data/spec/models/rspeed/splitter/split_spec.rb +70 -34
- data/spec/models/rspeed/variable/append_name_spec.rb +19 -0
- data/spec/models/rspeed/variable/default_partner_spec.rb +5 -0
- data/spec/models/rspeed/variable/key_spec.rb +15 -0
- data/spec/models/rspeed/variable/pipe_name_spec.rb +15 -0
- data/spec/models/rspeed/variable/pipe_profile_spec.rb +15 -0
- data/spec/models/rspeed/variable/pipes_pattern_spec.rb +5 -0
- data/spec/models/rspeed/variable/profile_pattern_spec.rb +5 -0
- data/spec/models/rspeed/variable/result_spec.rb +19 -0
- data/spec/spec_helper.rb +27 -0
- data/spec/support/common.rb +13 -0
- data/spec/support/coverage.rb +14 -0
- data/spec/support/env_mock.rb +3 -0
- data/spec/support/fakeredis.rb +3 -0
- metadata +146 -20
- data/spec/models/rspeed/splitter/destroy_spec.rb +0 -33
- data/spec/models/rspeed/splitter/keys_spec.rb +0 -33
- data/spec/models/rspeed/splitter/last_pipe_spec.rb +0 -21
- data/spec/models/rspeed/splitter/pipe_spec.rb +0 -21
- data/spec/models/rspeed/splitter/pipes_spec.rb +0 -27
- data/spec/models/rspeed/splitter/result_spec.rb +0 -19
- data/spec/models/rspeed/splitter/save_spec.rb +0 -55
- data/spec/rails_helper.rb +0 -43
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
RSpec.describe RSpeed::Redis, '.keys' do
|
|
4
|
+
subject(:redis) { described_class }
|
|
5
|
+
|
|
6
|
+
context 'with default config' do
|
|
7
|
+
before do
|
|
8
|
+
described_class.set('rspeed_1', 'value_1')
|
|
9
|
+
described_class.set('rspeed_2', 'value_2')
|
|
10
|
+
described_class.set('rspeed_3', 'value_3')
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
it 'shows keys' do
|
|
14
|
+
expect(redis.keys).to eq %w[rspeed_1 rspeed_2 rspeed_3]
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
context 'with custom key' do
|
|
19
|
+
before do
|
|
20
|
+
described_class.set('custom_key_1', 'value_1')
|
|
21
|
+
described_class.set('custom_key_2', 'value_2')
|
|
22
|
+
described_class.set('custom_key_3', 'value_3')
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
it 'shows keys' do
|
|
26
|
+
expect(redis.keys('custom_key_*')).to eq %w[custom_key_1 custom_key_2 custom_key_3]
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
RSpec.describe RSpeed::Redis, '#result?' do
|
|
4
|
+
context 'when has no key rspeed on redis' do
|
|
5
|
+
it { expect(described_class.result?).to be(false) }
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
context 'when has key rspeed on redis' do
|
|
9
|
+
before { described_class.set('rspeed', { files: [[1, '1_spec.rb']], number: 0, total: 1 }.to_json) }
|
|
10
|
+
|
|
11
|
+
it { expect(described_class.result?).to be(true) }
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
RSpec.describe RSpeed::Redis, '.specs_finished?' do
|
|
4
|
+
before do
|
|
5
|
+
described_class.set('rspeed_pipe_1', '1.0')
|
|
6
|
+
|
|
7
|
+
allow(RSpeed::Env).to receive(:pipes).and_return(2)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
context 'when the quantity of pipe result is not the same as the quantity of pipes' do
|
|
11
|
+
it { expect(described_class.specs_finished?).to be(false) }
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
context 'when the quantity of pipe result is the same as the quantity of pipes' do
|
|
15
|
+
before { described_class.set('rspeed_pipe_2', '2.0') }
|
|
16
|
+
|
|
17
|
+
it { expect(described_class.specs_finished?).to be(true) }
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
RSpec.describe RSpeed::Redis, '.specs_initiated?' do
|
|
4
|
+
context 'when has no pipe flag key' do
|
|
5
|
+
it { expect(described_class.specs_finished?).to be(false) }
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
context 'when has at least one pipe flag key' do
|
|
9
|
+
before { described_class.set('rspeed_pipe_1', '1.0') }
|
|
10
|
+
|
|
11
|
+
it { expect(described_class.specs_finished?).to be(true) }
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
RSpec.describe RSpeed::Runner, '#run' do
|
|
4
|
+
let!(:shell) { double('shell') }
|
|
5
|
+
let!(:splitter) { instance_double('RSpeed::Splitter') }
|
|
6
|
+
|
|
7
|
+
before do
|
|
8
|
+
allow(shell).to receive(:call)
|
|
9
|
+
allow(RSpeed::Splitter).to receive(:new).and_return(splitter)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
context 'when has result' do
|
|
13
|
+
before { allow(RSpeed::Redis).to receive(:result?).and_return(true) }
|
|
14
|
+
|
|
15
|
+
context 'when is the first pipe' do
|
|
16
|
+
before do
|
|
17
|
+
allow(splitter).to receive(:first_pipe?).and_return(true)
|
|
18
|
+
allow(splitter).to receive(:pipe_files).and_return('spec_1.rb spec_2.rb')
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'runs the pipe specs' do
|
|
22
|
+
described_class.run(shell)
|
|
23
|
+
|
|
24
|
+
expect(shell).to have_received(:call).with('bundle exec rspec spec_1.rb spec_2.rb')
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
context 'when is not the first pipe' do
|
|
29
|
+
before do
|
|
30
|
+
allow(splitter).to receive(:first_pipe?).and_return(false)
|
|
31
|
+
allow(splitter).to receive(:pipe_files).and_return('spec_1.rb spec_2.rb')
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
it 'runs the pipe specs' do
|
|
35
|
+
described_class.run(shell)
|
|
36
|
+
|
|
37
|
+
expect(shell).to have_received(:call).with('bundle exec rspec spec_1.rb spec_2.rb')
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
context 'when has no result' do
|
|
43
|
+
before do
|
|
44
|
+
allow(splitter).to receive(:first_pipe?).and_return(false)
|
|
45
|
+
allow(splitter).to receive(:pipe_files).and_return('spec_1.rb spec_2.rb')
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
context 'when is the first pipe' do
|
|
49
|
+
before { allow(splitter).to receive(:first_pipe?).and_return(true) }
|
|
50
|
+
|
|
51
|
+
it 'runs the pipe specs' do
|
|
52
|
+
described_class.run(shell)
|
|
53
|
+
|
|
54
|
+
expect(shell).to have_received(:call).with('bundle exec rspec spec_1.rb spec_2.rb')
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
context 'when is not the first pipe' do
|
|
59
|
+
before do
|
|
60
|
+
allow(splitter).to receive(:first_pipe?).and_return(false)
|
|
61
|
+
allow(RSpeed::Observer).to receive(:after_suite)
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
it 'does not run the pipe specs' do
|
|
65
|
+
described_class.run(shell)
|
|
66
|
+
|
|
67
|
+
expect(shell).not_to have_received(:call)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
it 'executes the after suite callback' do
|
|
71
|
+
described_class.run(shell)
|
|
72
|
+
|
|
73
|
+
expect(RSpeed::Observer).to have_received(:after_suite)
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
end
|
|
77
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
RSpec.describe RSpeed::Splitter, '#actual_examples' do
|
|
4
|
+
it 'returns all examples' do
|
|
5
|
+
splitter = described_class.new(specs_path: 'spec/fixtures/**/*_spec.rb')
|
|
6
|
+
|
|
7
|
+
expect(splitter.actual_examples).to eq [
|
|
8
|
+
'spec/fixtures/1_spec.rb:4',
|
|
9
|
+
'spec/fixtures/1_spec.rb:6',
|
|
10
|
+
'spec/fixtures/1_spec.rb:8',
|
|
11
|
+
'spec/fixtures/2_spec.rb:4',
|
|
12
|
+
]
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it 'does not raise when no file match' do
|
|
16
|
+
splitter = described_class.new(specs_path: 'spec/fixtures/**/*_missing.rb')
|
|
17
|
+
|
|
18
|
+
expect(splitter.actual_examples).to eq []
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
it 'does not raise when file is empty' do
|
|
22
|
+
splitter = described_class.new(specs_path: 'spec/fixtures/**/empty.rb')
|
|
23
|
+
|
|
24
|
+
expect(splitter.actual_examples).to eq []
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
RSpec.describe RSpeed::Splitter, '#append?' do
|
|
4
|
+
subject(:splitter) { described_class.new }
|
|
5
|
+
|
|
6
|
+
context 'when has no result' do
|
|
7
|
+
before { allow(RSpeed::Redis).to receive(:result?).and_return(false) }
|
|
8
|
+
|
|
9
|
+
context 'when is not the first pipe' do
|
|
10
|
+
before { allow(splitter).to receive(:first_pipe?).and_return(false) }
|
|
11
|
+
|
|
12
|
+
it { expect(splitter.append?).to be(false) }
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
context 'when is the first pipe' do
|
|
16
|
+
before { allow(splitter).to receive(:first_pipe?).and_return(true) }
|
|
17
|
+
|
|
18
|
+
it { expect(splitter.append?).to be(true) }
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
context 'when has result' do
|
|
23
|
+
before { allow(RSpeed::Redis).to receive(:result?).and_return(true) }
|
|
24
|
+
|
|
25
|
+
context 'when is not the first pipe' do
|
|
26
|
+
before { allow(splitter).to receive(:first_pipe?).and_return(false) }
|
|
27
|
+
|
|
28
|
+
it { expect(splitter.append?).to be(true) }
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
context 'when is the first pipe' do
|
|
32
|
+
before { allow(splitter).to receive(:first_pipe?).and_return(true) }
|
|
33
|
+
|
|
34
|
+
it { expect(splitter.append?).to be(true) }
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -1,37 +1,19 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'rails_helper'
|
|
4
|
-
|
|
5
3
|
RSpec.describe RSpeed::Splitter, '#append' do
|
|
6
4
|
subject(:splitter) { described_class.new }
|
|
7
5
|
|
|
6
|
+
let!(:redis) { redis_object }
|
|
7
|
+
|
|
8
8
|
it 'appends file and time on rspeed key' do
|
|
9
|
-
splitter.append
|
|
9
|
+
splitter.append(
|
|
10
|
+
items: [{ file: '1_spec.rb', time: 1 }.to_json, { file: '2_spec.rb', time: 2 }.to_json],
|
|
11
|
+
key: 'rspeed'
|
|
12
|
+
)
|
|
10
13
|
|
|
11
|
-
expect(
|
|
12
|
-
'{"file":"
|
|
13
|
-
'{"file":"
|
|
14
|
+
expect(redis.lrange('rspeed', 0, -1)).to eq [
|
|
15
|
+
'{"file":"1_spec.rb","time":1}',
|
|
16
|
+
'{"file":"2_spec.rb","time":2}',
|
|
14
17
|
]
|
|
15
18
|
end
|
|
16
|
-
|
|
17
|
-
context 'when files is not given' do
|
|
18
|
-
before do
|
|
19
|
-
clean_csv_file
|
|
20
|
-
populate_csv_file
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
it 'read csv and append file and time on rspeed key' do
|
|
24
|
-
splitter.append
|
|
25
|
-
|
|
26
|
-
expect(splitter.get('rspeed_tmp')).to eq [
|
|
27
|
-
'{"file":"./spec/0_2_spec.rb","time":0.2}',
|
|
28
|
-
'{"file":"./spec/0_3_spec.rb","time":0.3}',
|
|
29
|
-
'{"file":"./spec/0_4_spec.rb","time":0.4}',
|
|
30
|
-
'{"file":"./spec/0_7_spec.rb","time":0.7}',
|
|
31
|
-
'{"file":"./spec/1_1_spec.rb","time":1.1}',
|
|
32
|
-
'{"file":"./spec/1_5_spec.rb","time":1.5}',
|
|
33
|
-
'{"file":"./spec/2_0_spec.rb","time":2.0}',
|
|
34
|
-
]
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
19
|
end
|
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'rails_helper'
|
|
4
|
-
|
|
5
3
|
RSpec.describe RSpeed::Splitter, '#diff' do
|
|
6
|
-
subject(:splitter) { described_class.new }
|
|
4
|
+
subject(:splitter) { described_class.new(specs_path: './spec/fixtures/*_spec.rb') }
|
|
7
5
|
|
|
8
6
|
let!(:redis) { redis_object }
|
|
9
7
|
|
|
10
8
|
before do
|
|
11
|
-
redis.lpush 'rspeed', { file: '1_spec.rb', time: 1 }.to_json
|
|
12
|
-
redis.lpush 'rspeed', { file: '
|
|
13
|
-
redis.lpush 'rspeed', { file: '
|
|
9
|
+
redis.lpush 'rspeed', { file: './spec/fixtures/1_spec.rb:4', time: '1.4' }.to_json
|
|
10
|
+
redis.lpush 'rspeed', { file: './spec/fixtures/1_spec.rb:6', time: '1.6' }.to_json
|
|
11
|
+
redis.lpush 'rspeed', { file: './spec/fixtures/1_spec.rb:8', time: '1.8' }.to_json
|
|
12
|
+
redis.lpush 'rspeed', { file: './spec/fixtures/2_spec.rb:4', time: '2.4' }.to_json
|
|
13
|
+
redis.lpush 'rspeed', { file: './spec/fixtures/2_spec.rb:666', time: '6' }.to_json
|
|
14
|
+
redis.lpush 'rspeed', { file: './spec/fixtures/x_spec.rb:1', time: 3 }.to_json
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
2_spec.rb
|
|
17
|
-
3_spec.rb
|
|
18
|
-
4_spec.rb
|
|
19
|
-
]
|
|
16
|
+
File.open('spec/fixtures/new_spec.rb', 'a') { |file| file.write('it') }
|
|
20
17
|
end
|
|
21
18
|
|
|
19
|
+
after { delete_file('spec/fixtures/new_spec.rb') }
|
|
20
|
+
|
|
22
21
|
it 'removes removed specs and adds new spec and keeps keeped specs based on rspeed key values' do
|
|
23
22
|
expect(splitter.diff).to eq [
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
{ file: './spec/fixtures/2_spec.rb:4', time: '2.4' },
|
|
24
|
+
{ file: './spec/fixtures/1_spec.rb:8', time: '1.8' },
|
|
25
|
+
{ file: './spec/fixtures/1_spec.rb:6', time: '1.6' },
|
|
26
|
+
{ file: './spec/fixtures/1_spec.rb:4', time: '1.4' },
|
|
27
|
+
{ file: './spec/fixtures/new_spec.rb:1', time: 0 },
|
|
27
28
|
]
|
|
28
29
|
end
|
|
29
30
|
end
|
|
@@ -1,18 +1,16 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'rails_helper'
|
|
4
|
-
|
|
5
3
|
RSpec.describe RSpeed::Splitter, '.first_pipe?' do
|
|
6
4
|
subject(:splitter) { described_class.new }
|
|
7
5
|
|
|
8
6
|
context 'when pipe env is 1' do
|
|
9
|
-
before { allow(
|
|
7
|
+
before { allow(RSpeed::Env).to receive(:pipe).and_return 1 }
|
|
10
8
|
|
|
11
9
|
it { expect(splitter.first_pipe?).to eq true }
|
|
12
10
|
end
|
|
13
11
|
|
|
14
12
|
context 'when pipe env is not 1' do
|
|
15
|
-
before { allow(
|
|
13
|
+
before { allow(RSpeed::Env).to receive(:pipe).and_return 2 }
|
|
16
14
|
|
|
17
15
|
it { expect(splitter.first_pipe?).to eq false }
|
|
18
16
|
end
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'rails_helper'
|
|
4
|
-
|
|
5
3
|
RSpec.describe RSpeed::Splitter, '#get' do
|
|
6
4
|
subject(:splitter) { described_class.new }
|
|
7
5
|
|
|
@@ -18,14 +16,14 @@ RSpec.describe RSpeed::Splitter, '#get' do
|
|
|
18
16
|
{
|
|
19
17
|
'files' => [[1, '1_spec.rb'], [2, '2_spec.rb']],
|
|
20
18
|
'number' => 0,
|
|
21
|
-
'total' => 3
|
|
19
|
+
'total' => 3,
|
|
22
20
|
},
|
|
23
21
|
|
|
24
22
|
{
|
|
25
23
|
'files' => [[3, '3_spec.rb']],
|
|
26
24
|
'number' => 1,
|
|
27
|
-
'total' => 3
|
|
28
|
-
}
|
|
25
|
+
'total' => 3,
|
|
26
|
+
},
|
|
29
27
|
]
|
|
30
28
|
end
|
|
31
29
|
end
|
|
@@ -40,8 +38,8 @@ RSpec.describe RSpeed::Splitter, '#get' do
|
|
|
40
38
|
{
|
|
41
39
|
'files' => [[1, '1_spec.rb'], [2, '2_spec.rb']],
|
|
42
40
|
'number' => 0,
|
|
43
|
-
'total' => 3
|
|
44
|
-
}
|
|
41
|
+
'total' => 3,
|
|
42
|
+
},
|
|
45
43
|
]
|
|
46
44
|
end
|
|
47
45
|
end
|
|
@@ -55,21 +53,7 @@ RSpec.describe RSpeed::Splitter, '#get' do
|
|
|
55
53
|
it 'executes the right fetch method' do
|
|
56
54
|
expect(splitter.get('rspeed')).to eq [
|
|
57
55
|
'{"file":"2_spec.rb","time":2}',
|
|
58
|
-
'{"file":"1_spec.rb","time":1}'
|
|
59
|
-
]
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
context 'when pattern is rspeed_tmp' do
|
|
64
|
-
before do
|
|
65
|
-
redis.lpush 'rspeed_tmp', { file: '1_spec.rb', time: 1 }.to_json
|
|
66
|
-
redis.lpush 'rspeed_tmp', { file: '2_spec.rb', time: 2 }.to_json
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
it 'executes the right fetch method' do
|
|
70
|
-
expect(splitter.get('rspeed_tmp')).to eq [
|
|
71
|
-
'{"file":"2_spec.rb","time":2}',
|
|
72
|
-
'{"file":"1_spec.rb","time":1}'
|
|
56
|
+
'{"file":"1_spec.rb","time":1}',
|
|
73
57
|
]
|
|
74
58
|
end
|
|
75
59
|
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
RSpec.describe RSpeed::Splitter, '#need_warm?' do
|
|
4
|
+
subject(:splitter) { described_class.new }
|
|
5
|
+
|
|
6
|
+
context 'when has no result' do
|
|
7
|
+
before { allow(RSpeed::Redis).to receive(:result?).and_return(false) }
|
|
8
|
+
|
|
9
|
+
context 'when is not the first pipe' do
|
|
10
|
+
before { allow(splitter).to receive(:first_pipe?).and_return(false) }
|
|
11
|
+
|
|
12
|
+
it { expect(splitter.need_warm?).to be(false) }
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
context 'when is the first pipe' do
|
|
16
|
+
before { allow(splitter).to receive(:first_pipe?).and_return(true) }
|
|
17
|
+
|
|
18
|
+
it { expect(splitter.need_warm?).to be(true) }
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
context 'when has result' do
|
|
23
|
+
before { allow(RSpeed::Redis).to receive(:result?).and_return(true) }
|
|
24
|
+
|
|
25
|
+
context 'when is not the first pipe' do
|
|
26
|
+
before { allow(splitter).to receive(:first_pipe?).and_return(false) }
|
|
27
|
+
|
|
28
|
+
it { expect(splitter.need_warm?).to be(false) }
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
context 'when is the first pipe' do
|
|
32
|
+
before { allow(splitter).to receive(:first_pipe?).and_return(true) }
|
|
33
|
+
|
|
34
|
+
it { expect(splitter.need_warm?).to be(false) }
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|