knapsack_pro 3.4.2 → 3.5.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 +8 -0
- data/lib/knapsack_pro/hooks/queue.rb +20 -0
- data/lib/knapsack_pro/runners/queue/cucumber_runner.rb +2 -0
- data/lib/knapsack_pro/runners/queue/minitest_runner.rb +2 -0
- data/lib/knapsack_pro/runners/queue/rspec_runner.rb +2 -0
- data/lib/knapsack_pro/version.rb +1 -1
- data/spec/knapsack_pro/hooks/queue_spec.rb +40 -0
- data/spec/knapsack_pro/runners/queue/cucumber_runner_spec.rb +2 -0
- data/spec/knapsack_pro/runners/queue/minitest_runner_spec.rb +1 -0
- data/spec/knapsack_pro/runners/queue/rspec_runner_spec.rb +2 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 171049202c4a6b8c4fb1a3d637dcb8d3aac83d8d6d2505c01535116df8437622
|
4
|
+
data.tar.gz: ecf5ed5065c0c73d7bfc4ad2b9cc6f77148fed7f62c60fcac4bb946d5cc93e8b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f930e4ea77b06784219c1e6013ce10429637dbcd566c1f05378aa57a698d815240f75c0779340804e240c3647a4c3a05a9815a67431771ff1b776e25a9bfeb2b
|
7
|
+
data.tar.gz: 73fc1741cf0b880a169dc2f36755b5d01914ad9238b60f873e85324778bb1520af1e34007c7b0d73e4c841440be8bdd8544f5ee97a0cd3340dc6b86171fe4303
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,13 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
### 3.5.0
|
4
|
+
|
5
|
+
* Add the `KnapsackPro::Hooks::Queue.before_subset_queue` hook in Queue Mode
|
6
|
+
|
7
|
+
https://github.com/KnapsackPro/knapsack_pro-ruby/pull/183
|
8
|
+
|
9
|
+
https://github.com/KnapsackPro/knapsack_pro-ruby/compare/v3.4.2...v3.5.0
|
10
|
+
|
3
11
|
### 3.4.2
|
4
12
|
|
5
13
|
* Fix: Load `rspec/core` in Regular Mode when using RSpec split by test examples feature
|
@@ -3,6 +3,7 @@ module KnapsackPro
|
|
3
3
|
class Queue
|
4
4
|
class << self
|
5
5
|
attr_reader :before_queue_store,
|
6
|
+
:before_subset_queue_store,
|
6
7
|
:after_subset_queue_store,
|
7
8
|
:after_queue_store
|
8
9
|
|
@@ -10,6 +11,10 @@ module KnapsackPro
|
|
10
11
|
@before_queue_store = nil
|
11
12
|
end
|
12
13
|
|
14
|
+
def reset_before_subset_queue
|
15
|
+
@before_subset_queue_store = nil
|
16
|
+
end
|
17
|
+
|
13
18
|
def reset_after_subset_queue
|
14
19
|
@after_subset_queue_store = nil
|
15
20
|
end
|
@@ -23,6 +28,11 @@ module KnapsackPro
|
|
23
28
|
@before_queue_store << block
|
24
29
|
end
|
25
30
|
|
31
|
+
def before_subset_queue(&block)
|
32
|
+
@before_subset_queue_store ||= []
|
33
|
+
@before_subset_queue_store << block
|
34
|
+
end
|
35
|
+
|
26
36
|
def after_subset_queue(&block)
|
27
37
|
@after_subset_queue_store ||= []
|
28
38
|
@after_subset_queue_store << block
|
@@ -42,6 +52,16 @@ module KnapsackPro
|
|
42
52
|
end
|
43
53
|
end
|
44
54
|
|
55
|
+
def call_before_subset_queue
|
56
|
+
return unless before_subset_queue_store
|
57
|
+
before_subset_queue_store.each do |block|
|
58
|
+
block.call(
|
59
|
+
KnapsackPro::Config::Env.queue_id,
|
60
|
+
KnapsackPro::Config::Env.subset_queue_id
|
61
|
+
)
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
45
65
|
def call_after_subset_queue
|
46
66
|
return unless after_subset_queue_store
|
47
67
|
after_subset_queue_store.each do |block|
|
@@ -60,6 +60,8 @@ module KnapsackPro
|
|
60
60
|
KnapsackPro.tracker.reset!
|
61
61
|
KnapsackPro.tracker.set_prerun_tests(test_file_paths)
|
62
62
|
|
63
|
+
KnapsackPro::Hooks::Queue.call_before_subset_queue
|
64
|
+
|
63
65
|
all_test_file_paths += test_file_paths
|
64
66
|
|
65
67
|
result_exitstatus = cucumber_run(runner, test_file_paths, args)
|
@@ -67,6 +67,8 @@ module KnapsackPro
|
|
67
67
|
KnapsackPro.tracker.reset!
|
68
68
|
KnapsackPro.tracker.set_prerun_tests(test_file_paths)
|
69
69
|
|
70
|
+
KnapsackPro::Hooks::Queue.call_before_subset_queue
|
71
|
+
|
70
72
|
all_test_file_paths += test_file_paths
|
71
73
|
|
72
74
|
result = minitest_run(runner, test_file_paths, args)
|
data/lib/knapsack_pro/version.rb
CHANGED
@@ -37,6 +37,46 @@ describe KnapsackPro::Hooks::Queue do
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
+
describe '.call_before_subset_queue' do
|
41
|
+
subject { described_class.call_before_subset_queue }
|
42
|
+
|
43
|
+
context 'when callback is not set' do
|
44
|
+
before do
|
45
|
+
described_class.reset_before_subset_queue
|
46
|
+
end
|
47
|
+
|
48
|
+
it { should be_nil }
|
49
|
+
end
|
50
|
+
|
51
|
+
context 'when callback is set multiple times' do
|
52
|
+
let(:queue_id) { double }
|
53
|
+
let(:subset_queue_id) { double }
|
54
|
+
|
55
|
+
before do
|
56
|
+
expect(KnapsackPro::Config::Env).to receive(:queue_id).twice.and_return(queue_id)
|
57
|
+
expect(KnapsackPro::Config::Env).to receive(:subset_queue_id).twice.and_return(subset_queue_id)
|
58
|
+
|
59
|
+
$expected_called_blocks = []
|
60
|
+
|
61
|
+
described_class.before_subset_queue do |q_id, subset_q_id|
|
62
|
+
$expected_called_blocks << [:block_1_called, q_id, subset_q_id]
|
63
|
+
end
|
64
|
+
described_class.before_subset_queue do |q_id, subset_q_id|
|
65
|
+
$expected_called_blocks << [:block_2_called, q_id, subset_q_id]
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
it 'each block is called' do
|
70
|
+
subject
|
71
|
+
|
72
|
+
expect($expected_called_blocks).to eq([
|
73
|
+
[:block_1_called, queue_id, subset_queue_id],
|
74
|
+
[:block_2_called, queue_id, subset_queue_id],
|
75
|
+
])
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
40
80
|
describe '.call_after_subset_queue' do
|
41
81
|
subject { described_class.call_after_subset_queue }
|
42
82
|
|
@@ -115,6 +115,8 @@ describe KnapsackPro::Runners::Queue::CucumberRunner do
|
|
115
115
|
expect(tracker).to receive(:reset!)
|
116
116
|
expect(tracker).to receive(:set_prerun_tests).with(test_file_paths)
|
117
117
|
|
118
|
+
expect(KnapsackPro::Hooks::Queue).to receive(:call_before_subset_queue)
|
119
|
+
|
118
120
|
# .cucumber_run
|
119
121
|
expect(Kernel).to receive(:system).with('bundle exec cucumber --retry 5 --no-strict-flaky --require fake-features-dir -- "features/a.feature" "features/b.feature"')
|
120
122
|
|
@@ -125,6 +125,7 @@ describe KnapsackPro::Runners::Queue::MinitestRunner do
|
|
125
125
|
|
126
126
|
expect(Minitest::Runnable).to receive(:reset)
|
127
127
|
|
128
|
+
expect(KnapsackPro::Hooks::Queue).to receive(:call_before_subset_queue)
|
128
129
|
|
129
130
|
expect(KnapsackPro::Hooks::Queue).to receive(:call_after_subset_queue)
|
130
131
|
|
@@ -225,6 +225,8 @@ describe KnapsackPro::Runners::Queue::RSpecRunner do
|
|
225
225
|
|
226
226
|
expect(described_class).to receive(:rspec_clear_examples)
|
227
227
|
|
228
|
+
expect(KnapsackPro::Hooks::Queue).to receive(:call_before_subset_queue)
|
229
|
+
|
228
230
|
expect(KnapsackPro::Hooks::Queue).to receive(:call_after_subset_queue)
|
229
231
|
|
230
232
|
expect(KnapsackPro::Report).to receive(:save_subset_queue_to_file)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knapsack_pro
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ArturT
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-12-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|