rspeed 0.5.2 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
data/lib/rspeed/variable.rb
CHANGED
@@ -4,28 +4,27 @@ module RSpeed
|
|
4
4
|
module Variable
|
5
5
|
module_function
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
PROFILE_PATTERN = 'rspeed_profile_*'
|
7
|
+
PIPES_PATTERN = 'rspeed:pipe_*'
|
8
|
+
PROFILE_PATTERN = 'rspeed:profile_*'
|
10
9
|
|
11
|
-
def
|
12
|
-
[value, RSpeed::Env.
|
10
|
+
def append_app_name(value, plus: nil)
|
11
|
+
[value, RSpeed::Env.app, plus].compact.join('_')
|
13
12
|
end
|
14
13
|
|
15
14
|
def key(number)
|
16
|
-
|
15
|
+
append_app_name('rspeed', plus: number).to_sym
|
17
16
|
end
|
18
17
|
|
19
18
|
def result
|
20
|
-
|
19
|
+
append_app_name('rspeed')
|
21
20
|
end
|
22
21
|
|
23
|
-
def
|
24
|
-
|
22
|
+
def pipe
|
23
|
+
append_app_name('rspeed:pipe', plus: format('%02d', RSpeed::Env.pipe))
|
25
24
|
end
|
26
25
|
|
27
26
|
def profile
|
28
|
-
|
27
|
+
append_app_name('rspeed:profile', plus: format('%02d', RSpeed::Env.pipe))
|
29
28
|
end
|
30
29
|
end
|
31
30
|
end
|
data/lib/rspeed/version.rb
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RSpec.describe RSpeed::Database, '#result' do
|
4
|
+
let!(:redis) { redis_object }
|
5
|
+
|
6
|
+
before do
|
7
|
+
redis.rpush('rspeed', { file: '1_spec.rb', time: 1.0 }.to_json)
|
8
|
+
redis.rpush('rspeed', { file: '2_spec.rb', time: 2.0 }.to_json)
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'returns the results data as json' do
|
12
|
+
expect(described_class.result).to eq [
|
13
|
+
{ file: '1_spec.rb', time: 1.0 },
|
14
|
+
{ file: '2_spec.rb', time: 2.0 },
|
15
|
+
]
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RSpec.describe RSpeed::Differ, '#actual_data' do
|
4
|
+
let!(:files) { ['./spec/fixtures/1_spec.rb:4', './spec/fixtures/1_spec.rb:6', './spec/fixtures/new_spec.rb:1'] }
|
5
|
+
|
6
|
+
let!(:result) do
|
7
|
+
[
|
8
|
+
{ file: './spec/fixtures/1_spec.rb:4', time: 1.4 },
|
9
|
+
{ file: './spec/fixtures/1_spec.rb:6', time: 1.6 },
|
10
|
+
{ file: './spec/fixtures/2_spec.rb:4', time: 2.4 },
|
11
|
+
]
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'returns only consolidated data still existent as spec' do
|
15
|
+
expect(described_class.actual_data(files: files, result: result)).to eq [
|
16
|
+
{ file: './spec/fixtures/1_spec.rb:4', time: 1.4 },
|
17
|
+
{ file: './spec/fixtures/1_spec.rb:6', time: 1.6 },
|
18
|
+
]
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RSpec.describe RSpeed::Differ, '#actual_files' do
|
4
|
+
it 'returns all examples' do
|
5
|
+
expect(described_class.actual_files(spec_path: './spec/fixtures/**/*_spec.rb')).to eq [
|
6
|
+
'./spec/fixtures/1_spec.rb:4',
|
7
|
+
'./spec/fixtures/1_spec.rb:6',
|
8
|
+
'./spec/fixtures/1_spec.rb:8',
|
9
|
+
'./spec/fixtures/2_spec.rb:4',
|
10
|
+
]
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'does not raise when no file match' do
|
14
|
+
expect(described_class.actual_files(spec_path: './spec/fixtures/**/*_missing.rb')).to eq []
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'does not raise when file is empty' do
|
18
|
+
expect(described_class.actual_files(spec_path: './spec/fixtures/**/empty.rb')).to eq []
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RSpec.describe RSpeed::Differ, '#added_data' do
|
4
|
+
let!(:files) { ['./spec/fixtures/1_spec.rb:4', './spec/fixtures/1_spec.rb:6', './spec/fixtures/new_spec.rb:4'] }
|
5
|
+
|
6
|
+
let!(:result) do
|
7
|
+
[
|
8
|
+
{ file: './spec/fixtures/1_spec.rb:4', time: 1.4 },
|
9
|
+
{ file: './spec/fixtures/1_spec.rb:6', time: 1.6 },
|
10
|
+
{ file: './spec/fixtures/2_spec.rb:4', time: 2.4 },
|
11
|
+
]
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'returns the added data files with time as zero since we do not know yet' do
|
15
|
+
expect(described_class.added_data(files: files, result: result)).to eq [
|
16
|
+
{ file: './spec/fixtures/new_spec.rb:4', time: 0 },
|
17
|
+
]
|
18
|
+
end
|
19
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'support/env_mock'
|
4
|
+
|
5
|
+
RSpec.describe RSpeed::Differ, '#diff' do
|
6
|
+
let!(:redis) { redis_object }
|
7
|
+
|
8
|
+
before do
|
9
|
+
redis.rpush('rspeed', { file: './spec/fixtures/1_spec.rb:4', time: '1.4' }.to_json)
|
10
|
+
redis.rpush('rspeed', { file: './spec/fixtures/1_spec.rb:6', time: '1.6' }.to_json)
|
11
|
+
redis.rpush('rspeed', { file: './spec/fixtures/1_spec.rb:8', time: '1.8' }.to_json)
|
12
|
+
redis.rpush('rspeed', { file: './spec/fixtures/2_spec.rb:4', time: '2.4' }.to_json)
|
13
|
+
redis.rpush('rspeed', { file: './spec/fixtures/x_spec.rb:1', time: 3 }.to_json)
|
14
|
+
redis.rpush('rspeed', { file: './spec/fixtures/2_spec.rb:666', time: '6' }.to_json)
|
15
|
+
|
16
|
+
File.open('spec/fixtures/new_spec.rb', 'a') { |file| file.write('it') }
|
17
|
+
end
|
18
|
+
|
19
|
+
after { delete_file('spec/fixtures/new_spec.rb') }
|
20
|
+
|
21
|
+
it 'removes removed specs and adds new spec and keeps keeped specs based on rspeed key values' do
|
22
|
+
EnvMock.mock(rspeed_spec_path: './spec/fixtures/*_spec.rb') do
|
23
|
+
expect(described_class.diff).to eq [
|
24
|
+
{ file: './spec/fixtures/1_spec.rb:4', time: '1.4' },
|
25
|
+
{ file: './spec/fixtures/1_spec.rb:6', time: '1.6' },
|
26
|
+
{ file: './spec/fixtures/1_spec.rb:8', time: '1.8' },
|
27
|
+
{ file: './spec/fixtures/2_spec.rb:4', time: '2.4' },
|
28
|
+
{ file: './spec/fixtures/new_spec.rb:1', time: 0 },
|
29
|
+
]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
context 'when has duplicated example' do
|
34
|
+
before do
|
35
|
+
redis.rpush('rspeed', { file: './spec/fixtures/1_spec.rb:4', time: '1.4' }.to_json)
|
36
|
+
redis.rpush('rspeed', { file: './spec/fixtures/1_spec.rb:4', time: '1.4' }.to_json)
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'is removed' do
|
40
|
+
EnvMock.mock(rspeed_spec_path: './spec/fixtures/*_spec.rb') do
|
41
|
+
expect(described_class.diff).to eq [
|
42
|
+
{ file: './spec/fixtures/1_spec.rb:4', time: '1.4' },
|
43
|
+
{ file: './spec/fixtures/1_spec.rb:6', time: '1.6' },
|
44
|
+
{ file: './spec/fixtures/1_spec.rb:8', time: '1.8' },
|
45
|
+
{ file: './spec/fixtures/2_spec.rb:4', time: '2.4' },
|
46
|
+
{ file: './spec/fixtures/new_spec.rb:1', time: 0 },
|
47
|
+
]
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RSpec.describe RSpeed::Differ, '#removed_data' do
|
4
|
+
let!(:files) { ['./spec/fixtures/2_spec.rb:4'] }
|
5
|
+
|
6
|
+
let!(:result) do
|
7
|
+
[
|
8
|
+
{ file: './spec/fixtures/1_spec.rb:4', time: 1.4 },
|
9
|
+
{ file: './spec/fixtures/1_spec.rb:6', time: 1.6 },
|
10
|
+
{ file: './spec/fixtures/2_spec.rb:4', time: 2.4 },
|
11
|
+
]
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'returns only removed data' do
|
15
|
+
expect(described_class.removed_data(files: files, result: result)).to eq [
|
16
|
+
{ file: './spec/fixtures/1_spec.rb:4', time: 1.4 },
|
17
|
+
{ file: './spec/fixtures/1_spec.rb:6', time: 1.6 },
|
18
|
+
]
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RSpec.describe RSpeed::Differ, '#removed_time' do
|
4
|
+
let!(:data) do
|
5
|
+
[
|
6
|
+
{ file: './spec/fixtures/1_spec.rb:4', time: 1.4 },
|
7
|
+
{ file: './spec/fixtures/1_spec.rb:6', time: 1.6 },
|
8
|
+
]
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'returns the sum of removed examples' do
|
12
|
+
expect(described_class.removed_time(data: data)).to be(3.0)
|
13
|
+
end
|
14
|
+
end
|
@@ -2,16 +2,16 @@
|
|
2
2
|
|
3
3
|
require 'support/env_mock'
|
4
4
|
|
5
|
-
RSpec.describe RSpeed::Env, '.
|
5
|
+
RSpec.describe RSpeed::Env, '.app' do
|
6
6
|
context 'when env is given' do
|
7
7
|
it 'returns the env value' do
|
8
|
-
EnvMock.mock(
|
9
|
-
expect(described_class.
|
8
|
+
EnvMock.mock(rspeed_app: 'app') do
|
9
|
+
expect(described_class.app).to eq('app')
|
10
10
|
end
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
context 'when env is not given' do
|
15
|
-
it { expect(described_class.
|
15
|
+
it { expect(described_class.app).to be(nil) }
|
16
16
|
end
|
17
17
|
end
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'support/env_mock'
|
4
|
+
|
5
|
+
RSpec.describe RSpeed::Env, '.spec_path' do
|
6
|
+
context 'when env is given' do
|
7
|
+
it 'is returned' do
|
8
|
+
EnvMock.mock(rspeed_spec_path: './test/**/*test.rb') do
|
9
|
+
expect(described_class.spec_path).to eq('./test/**/*test.rb')
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
context 'when env is not given' do
|
15
|
+
it 'returns the default' do
|
16
|
+
expect(described_class.spec_path).to eq('./spec/**/*spec.rb')
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
@@ -1,51 +1,29 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
RSpec.describe RSpeed::Observer, '.after_suite' do
|
4
|
-
let!(:splitter) { instance_double('RSpeed::Splitter') }
|
5
|
-
|
6
|
-
before do
|
7
|
-
allow(RSpeed::Splitter).to receive(:new).and_return(splitter)
|
8
|
-
allow(splitter).to receive(:append)
|
9
|
-
end
|
10
|
-
|
11
|
-
context 'when append? returns false' do
|
12
|
-
before do
|
13
|
-
allow(splitter).to receive(:append?).and_return(false)
|
14
|
-
allow(splitter).to receive(:rename)
|
15
|
-
end
|
16
|
-
|
17
|
-
it 'does not append the time result' do
|
18
|
-
described_class.after_suite
|
19
|
-
|
20
|
-
expect(splitter).not_to have_received(:append)
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
4
|
context 'when all specs is not finished' do
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
end
|
5
|
+
let!(:redis) { redis_object }
|
6
|
+
|
7
|
+
before { allow(RSpeed::Redis).to receive(:specs_finished?).and_return(false) }
|
29
8
|
|
30
9
|
it 'sets true on pipe key to indicates that its finished' do
|
31
10
|
described_class.after_suite
|
32
11
|
|
33
|
-
expect(
|
12
|
+
expect(redis.get('rspeed:pipe_01')).to eq('true')
|
34
13
|
end
|
35
14
|
end
|
36
15
|
|
37
16
|
context 'when all specs finished' do
|
38
17
|
before do
|
39
|
-
allow(splitter).to receive(:append?)
|
40
18
|
allow(RSpeed::Redis).to receive(:specs_finished?).and_return(true)
|
41
|
-
allow(
|
19
|
+
allow(RSpeed::Splitter).to receive(:consolidate)
|
42
20
|
allow(RSpeed::Redis).to receive(:clean)
|
43
21
|
end
|
44
22
|
|
45
23
|
it 'consolidates profiles' do
|
46
24
|
described_class.after_suite
|
47
25
|
|
48
|
-
expect(
|
26
|
+
expect(RSpeed::Splitter).to have_received(:consolidate)
|
49
27
|
end
|
50
28
|
|
51
29
|
it 'destroyes pipe finished flag keys' do
|
@@ -4,23 +4,24 @@ RSpec.describe RSpeed::Observer, '.before_suite' do
|
|
4
4
|
let!(:redis) { redis_object }
|
5
5
|
|
6
6
|
before { truncate_profiles }
|
7
|
+
|
7
8
|
after { truncate_profiles }
|
8
9
|
|
9
10
|
it 'cleans only the current pipe profile' do
|
10
|
-
redis.
|
11
|
-
redis.
|
11
|
+
redis.rpush('rspeed:profile_01', { file: '1_spec.rb', time: 1 }.to_json)
|
12
|
+
redis.rpush('rspeed:profile_02', { file: '2_spec.rb', time: 2 }.to_json)
|
12
13
|
|
13
14
|
described_class.before_suite
|
14
15
|
|
15
|
-
expect(redis.keys).to eq ['
|
16
|
+
expect(redis.keys).to eq ['rspeed:profile_02']
|
16
17
|
end
|
17
18
|
|
18
19
|
it 'cleans the pipe flag' do
|
19
|
-
redis.set('
|
20
|
-
redis.set('
|
20
|
+
redis.set('rspeed:pipe_01', true)
|
21
|
+
redis.set('rspeed:pipe_02', true)
|
21
22
|
|
22
23
|
described_class.before_suite
|
23
24
|
|
24
|
-
expect(redis.keys).to eq ['
|
25
|
+
expect(redis.keys).to eq ['rspeed:pipe_02']
|
25
26
|
end
|
26
27
|
end
|
@@ -2,19 +2,19 @@
|
|
2
2
|
|
3
3
|
RSpec.describe RSpeed::Redis, '.clean' do
|
4
4
|
it 'destroys all keys that keeps the pipe finished info' do
|
5
|
-
|
6
|
-
|
5
|
+
redis_object.set('rspeed:pipe_01', true)
|
6
|
+
redis_object.set('rspeed:pipe_02', true)
|
7
7
|
|
8
8
|
described_class.clean
|
9
9
|
|
10
|
-
expect(
|
10
|
+
expect(redis_object.keys('*')).to eq([])
|
11
11
|
end
|
12
12
|
|
13
13
|
it 'destroys the pipe profiles' do
|
14
|
-
|
14
|
+
redis_object.set('rspeed:profile_01', true)
|
15
15
|
|
16
16
|
described_class.clean
|
17
17
|
|
18
|
-
expect(
|
18
|
+
expect(redis_object.keys('*')).to eq([])
|
19
19
|
end
|
20
20
|
end
|
@@ -1,29 +1,21 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
RSpec.describe RSpeed::Redis, '#destroy' do
|
4
|
-
let!(:redis) { described_class }
|
5
|
-
|
6
4
|
before do
|
7
|
-
|
8
|
-
|
9
|
-
|
5
|
+
redis_object.set('rspeed', '{}')
|
6
|
+
redis_object.set('rspeed_1', '{}')
|
7
|
+
redis_object.set('rspeed_2', '{}')
|
10
8
|
end
|
11
9
|
|
12
10
|
it 'destroys via wildcard' do
|
13
|
-
|
11
|
+
described_class.destroy(pattern: 'rspeed_*')
|
14
12
|
|
15
|
-
expect(
|
13
|
+
expect(redis_object.keys('*')).to eq %w[rspeed]
|
16
14
|
end
|
17
15
|
|
18
16
|
it 'destroys via single name' do
|
19
|
-
|
20
|
-
|
21
|
-
expect(redis.keys('*')).to eq %w[rspeed_1 rspeed_2]
|
22
|
-
end
|
23
|
-
|
24
|
-
it 'destroys default partner when no pattern is given' do
|
25
|
-
redis.destroy
|
17
|
+
described_class.destroy(pattern: 'rspeed')
|
26
18
|
|
27
|
-
expect(
|
19
|
+
expect(redis_object.keys('*')).to eq %w[rspeed_1 rspeed_2]
|
28
20
|
end
|
29
21
|
end
|
@@ -1,8 +1,10 @@
|
|
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
|
+
redis_object.set('key', 'value')
|
6
8
|
|
7
9
|
expect(described_class.get('key')).to eq('value')
|
8
10
|
end
|
@@ -1,29 +1,13 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
RSpec.describe RSpeed::Redis, '.keys' do
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
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
|
4
|
+
before do
|
5
|
+
redis_object.set('custom_key_1', 'value_1')
|
6
|
+
redis_object.set('custom_key_2', 'value_2')
|
7
|
+
redis_object.set('custom_key_3', 'value_3')
|
16
8
|
end
|
17
9
|
|
18
|
-
|
19
|
-
|
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
|
10
|
+
it 'shows keys' do
|
11
|
+
expect(described_class.keys(pattern: 'custom_key_*')).to eq %w[custom_key_1 custom_key_2 custom_key_3]
|
28
12
|
end
|
29
13
|
end
|