knapsack 3.1.0 → 4.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d27f3b6225aefe7c7a2ff1a4071961e65c5e087a5256d7294bca73398ce2c997
4
- data.tar.gz: 38f324e2d35800297e8c071caef06100688d1e1617bb8f3339076b9c9c1de828
3
+ metadata.gz: 22056a9ce80fe227bf9a1a03c5dd700f6cf3445d5fc69203a42a0756f98c5ccf
4
+ data.tar.gz: 44bba135b5624b37c8f800b65c206a0552406c9a10499fdefb8d22e7cbfccfaf
5
5
  SHA512:
6
- metadata.gz: 0d635a77401b2d65914edab41f2ac726901d38b937869fb408cc2548d6547114a0d968c06a8c9adfe4f5a2c3d3d7c11bea5bb0c8161d706e17870ea3682b5be0
7
- data.tar.gz: b5aa3601e1d7cbdffdfa33a4de64d562782c74371f9e3c58b0754b262a86554c8320e7fb0aff1c84cd6e05755b66c29b61b87f83ffb3a44d4f06eb9c38c8dfd6
6
+ metadata.gz: c07fbfb345373b82a0ad29aa5854d12285946725ceefb3dae95a67f53479af781beb1f90caea035ec66d6808c0f408c8f35df592f971f4a05f46545f10ed1d98
7
+ data.tar.gz: 197a4ba91a928c7202ab19105a1f8e65556d441a655532ccae96854de468a6de2eba8dfd7867aa4364d5b5a898f1a307cd4f53938e69bdbba39ac48022156bc2
data/CHANGELOG.md CHANGED
@@ -2,6 +2,15 @@
2
2
 
3
3
  * TODO
4
4
 
5
+ ### 4.0.0
6
+
7
+ * __(breaking change)__ Remove support for RSpec 2.x. This change was already done by accident in [the pull request](https://github.com/KnapsackPro/knapsack/pull/107) when we added the RSpec `context` hook, which is available only since RSpec 3.x.
8
+ * Use RSpec `example` block argument instead of the global `RSpec.current_example`. This allows to run tests with the `async-rspec` gem.
9
+
10
+ https://github.com/KnapsackPro/knapsack/pull/117
11
+
12
+ https://github.com/KnapsackPro/knapsack/compare/v3.1.0...v4.0.0
13
+
5
14
  ### 3.1.0
6
15
 
7
16
  * Sorting Algorithm: round robin to least connections
data/knapsack.gemspec CHANGED
@@ -23,7 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.add_dependency 'rake', '>= 0'
24
24
 
25
25
  spec.add_development_dependency 'bundler', '>= 1.6'
26
- spec.add_development_dependency 'rspec', '~> 3.0', '>= 2.10.0'
26
+ spec.add_development_dependency 'rspec', '~> 3.0'
27
27
  spec.add_development_dependency 'rspec-its', '~> 1.3'
28
28
  spec.add_development_dependency 'cucumber', '>= 0'
29
29
  spec.add_development_dependency 'spinach', '>= 0.8'
@@ -10,14 +10,8 @@ module Knapsack
10
10
  Knapsack.tracker.start_timer
11
11
  end
12
12
 
13
- config.prepend_before(:each) do
14
- current_example_group =
15
- if ::RSpec.respond_to?(:current_example)
16
- ::RSpec.current_example.metadata[:example_group]
17
- else
18
- example.metadata
19
- end
20
- Knapsack.tracker.test_path = RSpecAdapter.test_path(current_example_group)
13
+ config.prepend_before(:each) do |example|
14
+ Knapsack.tracker.test_path = RSpecAdapter.test_path(example)
21
15
  end
22
16
 
23
17
  config.append_after(:context) do
@@ -50,8 +44,10 @@ module Knapsack
50
44
  end
51
45
  end
52
46
 
53
- def self.test_path(example_group)
54
- if defined?(Turnip) && Turnip::VERSION.to_i < 2
47
+ def self.test_path(example)
48
+ example_group = example.metadata[:example_group]
49
+
50
+ if defined?(::Turnip) && Gem::Version.new(::Turnip::VERSION) < Gem::Version.new('2.0.0')
55
51
  unless example_group[:turnip]
56
52
  until example_group[:parent_example_group].nil?
57
53
  example_group = example_group[:parent_example_group]
@@ -1,3 +1,3 @@
1
1
  module Knapsack
2
- VERSION = '3.1.0'
2
+ VERSION = '4.0.0'
3
3
  end
@@ -16,22 +16,16 @@ describe Knapsack::Adapters::RSpecAdapter do
16
16
  let(:tracker) { instance_double(Knapsack::Tracker) }
17
17
  let(:test_path) { 'spec/a_spec.rb' }
18
18
  let(:global_time) { 'Global time: 01m 05s' }
19
- let(:example_group) { double }
20
- let(:current_example) do
21
- OpenStruct.new(metadata: {
22
- example_group: example_group
23
- })
24
- end
19
+ let(:current_example) { double }
25
20
 
26
21
  it do
27
22
  expect(config).to receive(:prepend_before).with(:context).and_yield
28
- expect(config).to receive(:prepend_before).with(:each).and_yield
23
+ expect(config).to receive(:prepend_before).with(:each).and_yield(current_example)
29
24
  expect(config).to receive(:append_after).with(:context).and_yield
30
25
  expect(config).to receive(:after).with(:suite).and_yield
31
26
  expect(::RSpec).to receive(:configure).and_yield(config)
32
27
 
33
- expect(::RSpec).to receive(:current_example).twice.and_return(current_example)
34
- expect(described_class).to receive(:test_path).with(example_group).and_return(test_path)
28
+ expect(described_class).to receive(:test_path).with(current_example).and_return(test_path)
35
29
 
36
30
  allow(Knapsack).to receive(:tracker).and_return(tracker)
37
31
  expect(tracker).to receive(:start_timer).ordered
@@ -81,7 +75,7 @@ describe Knapsack::Adapters::RSpecAdapter do
81
75
  end
82
76
 
83
77
  describe '.test_path' do
84
- let(:current_example_metadata) do
78
+ let(:example_group) do
85
79
  {
86
80
  file_path: '1_shared_example.rb',
87
81
  parent_example_group: {
@@ -92,14 +86,19 @@ describe Knapsack::Adapters::RSpecAdapter do
92
86
  }
93
87
  }
94
88
  end
89
+ let(:current_example) do
90
+ OpenStruct.new(metadata: {
91
+ example_group: example_group
92
+ })
93
+ end
95
94
 
96
- subject { described_class.test_path(current_example_metadata) }
95
+ subject { described_class.test_path(current_example) }
97
96
 
98
97
  it { should eql 'a_spec.rb' }
99
98
 
100
99
  context 'with turnip features' do
101
100
  describe 'when the turnip version is less than 2' do
102
- let(:current_example_metadata) do
101
+ let(:example_group) do
103
102
  {
104
103
  file_path: "./spec/features/logging_in.feature",
105
104
  turnip: true,
@@ -115,7 +114,7 @@ describe Knapsack::Adapters::RSpecAdapter do
115
114
  end
116
115
 
117
116
  describe 'when turnip is version 2 or greater' do
118
- let(:current_example_metadata) do
117
+ let(:example_group) do
119
118
  {
120
119
  file_path: "gems/turnip-2.0.0/lib/turnip/rspec.rb",
121
120
  turnip: true,
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knapsack
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ArturT
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-23 00:00:00.000000000 Z
11
+ date: 2021-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -45,9 +45,6 @@ dependencies:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '3.0'
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: 2.10.0
51
48
  type: :development
52
49
  prerelease: false
53
50
  version_requirements: !ruby/object:Gem::Requirement
@@ -55,9 +52,6 @@ dependencies:
55
52
  - - "~>"
56
53
  - !ruby/object:Gem::Version
57
54
  version: '3.0'
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: 2.10.0
61
55
  - !ruby/object:Gem::Dependency
62
56
  name: rspec-its
63
57
  requirement: !ruby/object:Gem::Requirement
@@ -269,7 +263,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
269
263
  - !ruby/object:Gem::Version
270
264
  version: '0'
271
265
  requirements: []
272
- rubygems_version: 3.2.15
266
+ rubygems_version: 3.2.22
273
267
  signing_key:
274
268
  specification_version: 4
275
269
  summary: Knapsack splits tests across CI nodes and makes sure that tests will run