knapsack_pro 3.8.0 → 3.10.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/.circleci/config.yml +2 -1
- data/CHANGELOG.md +16 -0
- data/README.md +2 -2
- data/lib/knapsack_pro/runners/rspec_runner.rb +1 -0
- data/lib/knapsack_pro/version.rb +1 -1
- data/lib/knapsack_pro.rb +0 -2
- data/spec/knapsack_pro/adapters/base_adapter_spec.rb +1 -0
- data/spec/knapsack_pro/runners/queue/minitest_runner_spec.rb +1 -0
- data/spec/knapsack_pro/runners/rspec_runner_spec.rb +39 -19
- data/spec/knapsack_pro/test_case_detectors/rspec_test_example_detector_spec.rb +1 -0
- metadata +3 -9
- data/lib/knapsack_pro/config/ci/snap_ci.rb +0 -35
- data/lib/knapsack_pro/config/ci/solano_ci.rb +0 -32
- data/spec/knapsack_pro/config/ci/snap_ci_spec.rb +0 -104
- data/spec/knapsack_pro/config/ci/solano_ci_spec.rb +0 -73
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5a557f5e56b1700cf9391abc05a6ce45321dcc2a79812927d1c78dbecf00dd09
|
4
|
+
data.tar.gz: 908a4ac991778a85e3168fb5db8f06d77573a79e182cfed1e48b719037bf68dd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cbba79dc7e72bf2785654ab7cf82d39cfbd34ff44395dd378c24a77ad283c7c7e243f3daf84e99206f439a4535b539dd20cd183454682ba38719cd24e0da7a5b
|
7
|
+
data.tar.gz: e326a929107db8167d023b12c133edada0b849808f0b848e6eb235d5156f588e5bd6a347637fd7e689e844620717f178ca7c7dd395de000e19bc225f423d6666
|
data/.circleci/config.yml
CHANGED
@@ -8,7 +8,8 @@ jobs:
|
|
8
8
|
parallelism: 1
|
9
9
|
docker:
|
10
10
|
# specify the version you desire here
|
11
|
-
|
11
|
+
# https://circleci.com/developer/images/image/cimg/ruby
|
12
|
+
- image: cimg/ruby:3.2.1
|
12
13
|
environment:
|
13
14
|
CODECLIMATE_REPO_TOKEN: b6626e682a8e97e0c5978febc92c3526792a2d018b41b8e1b52689da37fb7d92
|
14
15
|
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,21 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
+
### 3.10.0
|
4
|
+
|
5
|
+
* Remove Solano CI and Snap CI support because they do not exist anymore
|
6
|
+
|
7
|
+
https://github.com/KnapsackPro/knapsack_pro-ruby/pull/194
|
8
|
+
|
9
|
+
https://github.com/KnapsackPro/knapsack_pro-ruby/compare/v3.9.0...v3.10.0
|
10
|
+
|
11
|
+
### 3.9.0
|
12
|
+
|
13
|
+
* Suppress all RSpec spec file names displayed in stdout at the beginning of running tests in Regular Mode only when the log level is >= `warn`
|
14
|
+
|
15
|
+
https://github.com/KnapsackPro/knapsack_pro-ruby/pull/190
|
16
|
+
|
17
|
+
https://github.com/KnapsackPro/knapsack_pro-ruby/compare/v3.8.0...v3.9.0
|
18
|
+
|
3
19
|
### 3.8.0
|
4
20
|
|
5
21
|
* Extract URLs and point them at `https://knapsackpro.com/perma/ruby/*`
|
data/README.md
CHANGED
@@ -51,10 +51,10 @@ The `knapsack_pro` gem supports all CIs and the following test runners:
|
|
51
51
|
|
52
52
|
## Installation
|
53
53
|
|
54
|
-
The [Installation Guide](
|
54
|
+
The [Installation Guide](https://docs.knapsackpro.com/knapsack_pro-ruby/guide/?utm_source=github&utm_medium=readme&utm_campaign=knapsack_pro-ruby_gem&utm_content=installation_guide) will ask you a few questions and generate instruction steps for your project:
|
55
55
|
|
56
56
|
<div align="center">
|
57
|
-
<a href="
|
57
|
+
<a href="https://docs.knapsackpro.com/knapsack_pro-ruby/guide/?utm_source=github&utm_medium=readme&utm_campaign=knapsack_pro-ruby_gem&utm_content=installation_guide">
|
58
58
|
<img alt="Install button" src="./.github/assets/install-button.png" width="116" height="50" />
|
59
59
|
</a>
|
60
60
|
</div>
|
@@ -32,6 +32,7 @@ module KnapsackPro
|
|
32
32
|
# instead we pass test files and test example paths to t.rspec_opts
|
33
33
|
t.pattern = []
|
34
34
|
t.rspec_opts = "#{args} --default-path #{runner.test_dir} #{runner.stringify_test_file_paths}"
|
35
|
+
t.verbose = KnapsackPro::Config::Env.log_level < ::Logger::WARN
|
35
36
|
end
|
36
37
|
Rake::Task[task_name].invoke
|
37
38
|
end
|
data/lib/knapsack_pro/version.rb
CHANGED
data/lib/knapsack_pro.rb
CHANGED
@@ -21,8 +21,6 @@ require_relative 'knapsack_pro/config/ci/semaphore'
|
|
21
21
|
require_relative 'knapsack_pro/config/ci/semaphore2'
|
22
22
|
require_relative 'knapsack_pro/config/ci/buildkite'
|
23
23
|
require_relative 'knapsack_pro/config/ci/travis'
|
24
|
-
require_relative 'knapsack_pro/config/ci/snap_ci'
|
25
|
-
require_relative 'knapsack_pro/config/ci/solano_ci'
|
26
24
|
require_relative 'knapsack_pro/config/ci/codeship'
|
27
25
|
require_relative 'knapsack_pro/config/ci/github_actions'
|
28
26
|
require_relative 'knapsack_pro/config/ci/heroku'
|
@@ -98,6 +98,7 @@ describe KnapsackPro::Adapters::BaseAdapter do
|
|
98
98
|
|
99
99
|
before do
|
100
100
|
expect(::Kernel).to receive(:at_exit).and_yield
|
101
|
+
allow(File).to receive(:exist?)
|
101
102
|
expect(File).to receive(:exist?).with('.knapsack_pro/KnapsackPro-Adapters-BaseAdapter-bind_method_called_for_node_0.txt').and_return(adapter_bind_method_called_file_exists)
|
102
103
|
end
|
103
104
|
|
@@ -114,6 +114,7 @@ describe KnapsackPro::Runners::Queue::MinitestRunner do
|
|
114
114
|
expect(tracker).to receive(:set_prerun_tests).with(test_file_paths)
|
115
115
|
|
116
116
|
# .minitest_run
|
117
|
+
allow(File).to receive(:exist?)
|
117
118
|
expect(File).to receive(:exist?).with('./a_test.rb').and_return(true)
|
118
119
|
expect(File).to receive(:exist?).with('./b_test.rb').and_return(true)
|
119
120
|
expect(File).to receive(:exist?).with('./fake_path_test.rb').and_return(false)
|
@@ -36,6 +36,7 @@ describe KnapsackPro::Runners::RSpecRunner do
|
|
36
36
|
test_files_to_execute_exist?: true)
|
37
37
|
end
|
38
38
|
let(:task) { double }
|
39
|
+
let(:task_config) { double }
|
39
40
|
|
40
41
|
before do
|
41
42
|
expect(KnapsackPro::Adapters::RSpecAdapter).to receive(:verify_bind_method_called).ordered
|
@@ -47,36 +48,55 @@ describe KnapsackPro::Runners::RSpecRunner do
|
|
47
48
|
|
48
49
|
expect(Rake::Task).to receive(:[]).with('knapsack_pro:rspec_run').at_least(1).and_return(task)
|
49
50
|
|
50
|
-
|
51
|
-
expect(
|
52
|
-
expect(
|
53
|
-
expect(t).to receive(:pattern=).with([])
|
51
|
+
expect(RSpec::Core::RakeTask).to receive(:new).with('knapsack_pro:rspec_run').and_yield(task_config)
|
52
|
+
expect(task_config).to receive(:rspec_opts=).with('--profile --color --default-path fake-test-dir spec/a_spec.rb spec/b_spec.rb[1:1]')
|
53
|
+
expect(task_config).to receive(:pattern=).with([])
|
54
54
|
end
|
55
55
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
56
|
+
shared_examples 'invokes RSpec rake task' do
|
57
|
+
context 'when rake task already exists' do
|
58
|
+
before do
|
59
|
+
expect(Rake::Task).to receive(:task_defined?).with('knapsack_pro:rspec_run').and_return(true)
|
60
|
+
expect(task).to receive(:clear)
|
61
|
+
end
|
62
|
+
|
63
|
+
it do
|
64
|
+
result = double(:result)
|
65
|
+
expect(task).to receive(:invoke).and_return(result)
|
66
|
+
expect(subject).to eq result
|
67
|
+
end
|
60
68
|
end
|
61
69
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
70
|
+
context "when rake task doesn't exist" do
|
71
|
+
before do
|
72
|
+
expect(Rake::Task).to receive(:task_defined?).with('knapsack_pro:rspec_run').and_return(false)
|
73
|
+
expect(task).not_to receive(:clear)
|
74
|
+
end
|
75
|
+
|
76
|
+
it do
|
77
|
+
result = double(:result)
|
78
|
+
expect(task).to receive(:invoke).and_return(result)
|
79
|
+
expect(subject).to eq result
|
80
|
+
end
|
66
81
|
end
|
67
82
|
end
|
68
83
|
|
69
|
-
context
|
84
|
+
context 'when the default log level' do
|
70
85
|
before do
|
71
|
-
expect(
|
72
|
-
expect(task).not_to receive(:clear)
|
86
|
+
expect(task_config).to receive(:verbose=).with(true)
|
73
87
|
end
|
74
88
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
89
|
+
it_behaves_like 'invokes RSpec rake task'
|
90
|
+
end
|
91
|
+
|
92
|
+
context 'when the warning log level' do
|
93
|
+
before do
|
94
|
+
expect(KnapsackPro::Config::Env).to receive(:log_level).and_return(::Logger::WARN)
|
95
|
+
|
96
|
+
expect(task_config).to receive(:verbose=).with(false)
|
79
97
|
end
|
98
|
+
|
99
|
+
it_behaves_like 'invokes RSpec rake task'
|
80
100
|
end
|
81
101
|
end
|
82
102
|
|
@@ -11,6 +11,7 @@ describe KnapsackPro::TestCaseDetectors::RSpecTestExampleDetector do
|
|
11
11
|
|
12
12
|
expect(FileUtils).to receive(:mkdir_p).with(report_dir)
|
13
13
|
|
14
|
+
allow(File).to receive(:exist?)
|
14
15
|
expect(File).to receive(:exist?).at_least(:once).with(report_path).and_return(true)
|
15
16
|
expect(File).to receive(:delete).with(report_path)
|
16
17
|
|
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.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ArturT
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-02
|
11
|
+
date: 2023-05-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -230,8 +230,6 @@ files:
|
|
230
230
|
- lib/knapsack_pro/config/ci/heroku.rb
|
231
231
|
- lib/knapsack_pro/config/ci/semaphore.rb
|
232
232
|
- lib/knapsack_pro/config/ci/semaphore2.rb
|
233
|
-
- lib/knapsack_pro/config/ci/snap_ci.rb
|
234
|
-
- lib/knapsack_pro/config/ci/solano_ci.rb
|
235
233
|
- lib/knapsack_pro/config/ci/travis.rb
|
236
234
|
- lib/knapsack_pro/config/env.rb
|
237
235
|
- lib/knapsack_pro/config/env_generator.rb
|
@@ -327,8 +325,6 @@ files:
|
|
327
325
|
- spec/knapsack_pro/config/ci/heroku_spec.rb
|
328
326
|
- spec/knapsack_pro/config/ci/semaphore2_spec.rb
|
329
327
|
- spec/knapsack_pro/config/ci/semaphore_spec.rb
|
330
|
-
- spec/knapsack_pro/config/ci/snap_ci_spec.rb
|
331
|
-
- spec/knapsack_pro/config/ci/solano_ci_spec.rb
|
332
328
|
- spec/knapsack_pro/config/ci/travis_spec.rb
|
333
329
|
- spec/knapsack_pro/config/env_generator_spec.rb
|
334
330
|
- spec/knapsack_pro/config/env_spec.rb
|
@@ -408,7 +404,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
408
404
|
- !ruby/object:Gem::Version
|
409
405
|
version: '0'
|
410
406
|
requirements: []
|
411
|
-
rubygems_version: 3.
|
407
|
+
rubygems_version: 3.4.10
|
412
408
|
signing_key:
|
413
409
|
specification_version: 4
|
414
410
|
summary: Knapsack Pro splits tests across parallel CI nodes and ensures each parallel
|
@@ -449,8 +445,6 @@ test_files:
|
|
449
445
|
- spec/knapsack_pro/config/ci/heroku_spec.rb
|
450
446
|
- spec/knapsack_pro/config/ci/semaphore2_spec.rb
|
451
447
|
- spec/knapsack_pro/config/ci/semaphore_spec.rb
|
452
|
-
- spec/knapsack_pro/config/ci/snap_ci_spec.rb
|
453
|
-
- spec/knapsack_pro/config/ci/solano_ci_spec.rb
|
454
448
|
- spec/knapsack_pro/config/ci/travis_spec.rb
|
455
449
|
- spec/knapsack_pro/config/env_generator_spec.rb
|
456
450
|
- spec/knapsack_pro/config/env_spec.rb
|
@@ -1,35 +0,0 @@
|
|
1
|
-
module KnapsackPro
|
2
|
-
module Config
|
3
|
-
module CI
|
4
|
-
class SnapCI < Base
|
5
|
-
def node_total
|
6
|
-
ENV['SNAP_WORKER_TOTAL']
|
7
|
-
end
|
8
|
-
|
9
|
-
def node_index
|
10
|
-
index = ENV['SNAP_WORKER_INDEX']
|
11
|
-
index.to_i - 1 if index
|
12
|
-
end
|
13
|
-
|
14
|
-
def node_build_id
|
15
|
-
ENV['SNAP_PIPELINE_COUNTER']
|
16
|
-
end
|
17
|
-
|
18
|
-
def commit_hash
|
19
|
-
ENV['SNAP_COMMIT']
|
20
|
-
end
|
21
|
-
|
22
|
-
# https://docs.snap-ci.com/environment-variables/
|
23
|
-
# SNAP_BRANCH - the name of the git branch (not present on pull requests)
|
24
|
-
# SNAP_UPSTREAM_BRANCH - the upstream branch for which the pull request was opened
|
25
|
-
def branch
|
26
|
-
ENV['SNAP_BRANCH'] || ENV['SNAP_UPSTREAM_BRANCH']
|
27
|
-
end
|
28
|
-
|
29
|
-
def project_dir
|
30
|
-
ENV['SNAP_WORKING_DIR']
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
# http://docs.solanolabs.com/Setup/tddium-set-environment-variables/
|
2
|
-
module KnapsackPro
|
3
|
-
module Config
|
4
|
-
module CI
|
5
|
-
class SolanoCI < Base
|
6
|
-
def node_total
|
7
|
-
# not provided
|
8
|
-
end
|
9
|
-
|
10
|
-
def node_index
|
11
|
-
# not provided
|
12
|
-
end
|
13
|
-
|
14
|
-
def node_build_id
|
15
|
-
ENV['TDDIUM_SESSION_ID']
|
16
|
-
end
|
17
|
-
|
18
|
-
def commit_hash
|
19
|
-
ENV['TDDIUM_CURRENT_COMMIT']
|
20
|
-
end
|
21
|
-
|
22
|
-
def branch
|
23
|
-
ENV['TDDIUM_CURRENT_BRANCH']
|
24
|
-
end
|
25
|
-
|
26
|
-
def project_dir
|
27
|
-
ENV['TDDIUM_REPO_ROOT']
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|
@@ -1,104 +0,0 @@
|
|
1
|
-
describe KnapsackPro::Config::CI::SnapCI do
|
2
|
-
let(:env) { {} }
|
3
|
-
|
4
|
-
before do
|
5
|
-
stub_const('ENV', env)
|
6
|
-
end
|
7
|
-
|
8
|
-
it { should be_kind_of KnapsackPro::Config::CI::Base }
|
9
|
-
|
10
|
-
describe '#node_total' do
|
11
|
-
subject { described_class.new.node_total }
|
12
|
-
|
13
|
-
context 'when environment exists' do
|
14
|
-
let(:env) { { 'SNAP_WORKER_TOTAL' => 4 } }
|
15
|
-
it { should eql 4 }
|
16
|
-
end
|
17
|
-
|
18
|
-
context "when environment doesn't exist" do
|
19
|
-
it { should be nil }
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
describe '#node_index' do
|
24
|
-
subject { described_class.new.node_index }
|
25
|
-
|
26
|
-
context 'when environment exists' do
|
27
|
-
let(:env) { { 'SNAP_WORKER_INDEX' => 4 } }
|
28
|
-
it { should eql 3 }
|
29
|
-
end
|
30
|
-
|
31
|
-
context "when environment doesn't exist" do
|
32
|
-
it { should be nil }
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
describe '#node_build_id' do
|
37
|
-
subject { described_class.new.node_build_id }
|
38
|
-
|
39
|
-
context 'when environment exists' do
|
40
|
-
let(:env) { { 'SNAP_PIPELINE_COUNTER' => 123 } }
|
41
|
-
it { should eql 123 }
|
42
|
-
end
|
43
|
-
|
44
|
-
context "when environment doesn't exist" do
|
45
|
-
it { should be nil }
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
describe '#commit_hash' do
|
50
|
-
subject { described_class.new.commit_hash }
|
51
|
-
|
52
|
-
context 'when environment exists' do
|
53
|
-
let(:env) { { 'SNAP_COMMIT' => '3fa64859337f6e56409d49f865d13fd7' } }
|
54
|
-
it { should eql '3fa64859337f6e56409d49f865d13fd7' }
|
55
|
-
end
|
56
|
-
|
57
|
-
context "when environment doesn't exist" do
|
58
|
-
it { should be nil }
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
describe '#branch' do
|
63
|
-
subject { described_class.new.branch }
|
64
|
-
|
65
|
-
context 'when environment exists' do
|
66
|
-
context 'when branch present' do
|
67
|
-
let(:env) { { 'SNAP_BRANCH' => 'master' } }
|
68
|
-
it { should eql 'master' }
|
69
|
-
end
|
70
|
-
|
71
|
-
context 'when pull request' do
|
72
|
-
let(:env) { { 'SNAP_UPSTREAM_BRANCH' => 'feature-branch' } }
|
73
|
-
it { should eql 'feature-branch' }
|
74
|
-
end
|
75
|
-
|
76
|
-
context 'branch has higher priority' do
|
77
|
-
let(:env) do
|
78
|
-
{
|
79
|
-
'SNAP_BRANCH' => 'master',
|
80
|
-
'SNAP_UPSTREAM_BRANCH' => 'feature-branch'
|
81
|
-
}
|
82
|
-
end
|
83
|
-
it { should eql 'master' }
|
84
|
-
end
|
85
|
-
end
|
86
|
-
|
87
|
-
context "when environment doesn't exist" do
|
88
|
-
it { should be nil }
|
89
|
-
end
|
90
|
-
end
|
91
|
-
|
92
|
-
describe '#project_dir' do
|
93
|
-
subject { described_class.new.project_dir }
|
94
|
-
|
95
|
-
context 'when environment exists' do
|
96
|
-
let(:env) { { 'SNAP_WORKING_DIR' => '/var/snap-ci/repo' } }
|
97
|
-
it { should eql '/var/snap-ci/repo' }
|
98
|
-
end
|
99
|
-
|
100
|
-
context "when environment doesn't exist" do
|
101
|
-
it { should be nil }
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
@@ -1,73 +0,0 @@
|
|
1
|
-
describe KnapsackPro::Config::CI::SolanoCI do
|
2
|
-
let(:env) { {} }
|
3
|
-
|
4
|
-
before do
|
5
|
-
stub_const('ENV', env)
|
6
|
-
end
|
7
|
-
|
8
|
-
it { should be_kind_of KnapsackPro::Config::CI::Base }
|
9
|
-
|
10
|
-
describe '#node_total' do
|
11
|
-
subject { described_class.new.node_total }
|
12
|
-
|
13
|
-
it { should be nil }
|
14
|
-
end
|
15
|
-
|
16
|
-
describe '#node_index' do
|
17
|
-
subject { described_class.new.node_index }
|
18
|
-
|
19
|
-
it { should be nil }
|
20
|
-
end
|
21
|
-
|
22
|
-
describe '#node_build_id' do
|
23
|
-
subject { described_class.new.node_build_id }
|
24
|
-
|
25
|
-
context 'when environment exists' do
|
26
|
-
let(:env) { { 'TDDIUM_SESSION_ID' => 123 } }
|
27
|
-
it { should eql 123 }
|
28
|
-
end
|
29
|
-
|
30
|
-
context "when environment doesn't exist" do
|
31
|
-
it { should be nil }
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
describe '#commit_hash' do
|
36
|
-
subject { described_class.new.commit_hash }
|
37
|
-
|
38
|
-
context 'when environment exists' do
|
39
|
-
let(:env) { { 'TDDIUM_CURRENT_COMMIT' => '2e13512fc230d6f9ebf4923352718e4d' } }
|
40
|
-
it { should eql '2e13512fc230d6f9ebf4923352718e4d' }
|
41
|
-
end
|
42
|
-
|
43
|
-
context "when environment doesn't exist" do
|
44
|
-
it { should be nil }
|
45
|
-
end
|
46
|
-
end
|
47
|
-
|
48
|
-
describe '#branch' do
|
49
|
-
subject { described_class.new.branch }
|
50
|
-
|
51
|
-
context 'when environment exists' do
|
52
|
-
let(:env) { { 'TDDIUM_CURRENT_BRANCH' => 'master' } }
|
53
|
-
it { should eql 'master' }
|
54
|
-
end
|
55
|
-
|
56
|
-
context "when environment doesn't exist" do
|
57
|
-
it { should be nil }
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
describe '#project_dir' do
|
62
|
-
subject { described_class.new.project_dir }
|
63
|
-
|
64
|
-
context 'when environment exists' do
|
65
|
-
let(:env) { { 'TDDIUM_REPO_ROOT' => '/example/repo/root' } }
|
66
|
-
it { should eql '/example/repo/root' }
|
67
|
-
end
|
68
|
-
|
69
|
-
context "when environment doesn't exist" do
|
70
|
-
it { should be nil }
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|