license-acceptance 1.0.11 → 2.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.
@@ -1,3 +1,3 @@
1
1
  module LicenseAcceptance
2
- VERSION = "1.0.11"
2
+ VERSION = "2.0.0".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: license-acceptance
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.11
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - tyler-ball
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-15 00:00:00.000000000 Z
11
+ date: 2020-08-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pastel
@@ -44,140 +44,28 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0.3'
47
+ version: '0.6'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0.3'
54
+ version: '0.6'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: tty-prompt
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '0.18'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '0.18'
69
- - !ruby/object:Gem::Dependency
70
- name: rake
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '10.0'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '10.0'
83
- - !ruby/object:Gem::Dependency
84
- name: rspec
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '3.0'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '3.0'
97
- - !ruby/object:Gem::Dependency
98
- name: pry
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '0.12'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '0.12'
111
- - !ruby/object:Gem::Dependency
112
- name: pry-byebug
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '3.6'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '3.6'
125
- - !ruby/object:Gem::Dependency
126
- name: pry-stack_explorer
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '0.4'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '0.4'
139
- - !ruby/object:Gem::Dependency
140
- name: mixlib-cli
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: '1.7'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: '1.7'
153
- - !ruby/object:Gem::Dependency
154
- name: thor
155
57
  requirement: !ruby/object:Gem::Requirement
156
58
  requirements:
157
59
  - - "~>"
158
60
  - !ruby/object:Gem::Version
159
61
  version: '0.20'
160
- type: :development
62
+ type: :runtime
161
63
  prerelease: false
162
64
  version_requirements: !ruby/object:Gem::Requirement
163
65
  requirements:
164
66
  - - "~>"
165
67
  - !ruby/object:Gem::Version
166
68
  version: '0.20'
167
- - !ruby/object:Gem::Dependency
168
- name: climate_control
169
- requirement: !ruby/object:Gem::Requirement
170
- requirements:
171
- - - "~>"
172
- - !ruby/object:Gem::Version
173
- version: '0.2'
174
- type: :development
175
- prerelease: false
176
- version_requirements: !ruby/object:Gem::Requirement
177
- requirements:
178
- - - "~>"
179
- - !ruby/object:Gem::Version
180
- version: '0.2'
181
69
  description: Chef End User License Agreement Acceptance for Ruby products
182
70
  email:
183
71
  - tball@chef.io
@@ -186,9 +74,7 @@ extensions: []
186
74
  extra_rdoc_files: []
187
75
  files:
188
76
  - Gemfile
189
- - Gemfile.lock
190
77
  - LICENSE
191
- - Rakefile
192
78
  - config/product_info.toml
193
79
  - lib/license_acceptance/acceptor.rb
194
80
  - lib/license_acceptance/cli_flags/mixlib_cli.rb
@@ -205,18 +91,6 @@ files:
205
91
  - lib/license_acceptance/strategy/prompt.rb
206
92
  - lib/license_acceptance/strategy/provided_value.rb
207
93
  - lib/license_acceptance/version.rb
208
- - spec/license_acceptance/acceptor_spec.rb
209
- - spec/license_acceptance/cli_flags/mixlib_cli_spec.rb
210
- - spec/license_acceptance/cli_flags/thor_spec.rb
211
- - spec/license_acceptance/config_spec.rb
212
- - spec/license_acceptance/product_reader_spec.rb
213
- - spec/license_acceptance/product_spec.rb
214
- - spec/license_acceptance/strategy/argument_spec.rb
215
- - spec/license_acceptance/strategy/environment_spec.rb
216
- - spec/license_acceptance/strategy/file_spec.rb
217
- - spec/license_acceptance/strategy/prompt_spec.rb
218
- - spec/license_acceptance/strategy/provided_value_spec.rb
219
- - spec/spec_helper.rb
220
94
  homepage: https://github.com/chef/license-acceptance/
221
95
  licenses:
222
96
  - Apache-2.0
@@ -229,7 +103,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
229
103
  requirements:
230
104
  - - ">="
231
105
  - !ruby/object:Gem::Version
232
- version: '2.3'
106
+ version: '2.4'
233
107
  required_rubygems_version: !ruby/object:Gem::Requirement
234
108
  requirements:
235
109
  - - ">="
@@ -1,94 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- license-acceptance (1.0.11)
5
- pastel (~> 0.7)
6
- tomlrb (~> 1.2)
7
- tty-box (~> 0.3)
8
- tty-prompt (~> 0.18)
9
-
10
- GEM
11
- remote: https://rubygems.org/
12
- specs:
13
- binding_of_caller (0.8.0)
14
- debug_inspector (>= 0.0.1)
15
- byebug (11.0.1)
16
- climate_control (0.2.0)
17
- coderay (1.1.2)
18
- debug_inspector (0.0.3)
19
- diff-lcs (1.3)
20
- equatable (0.5.0)
21
- method_source (0.9.2)
22
- mixlib-cli (1.7.0)
23
- necromancer (0.4.0)
24
- pastel (0.7.2)
25
- equatable (~> 0.5.0)
26
- tty-color (~> 0.4.0)
27
- pry (0.12.2)
28
- coderay (~> 1.1.0)
29
- method_source (~> 0.9.0)
30
- pry-byebug (3.7.0)
31
- byebug (~> 11.0)
32
- pry (~> 0.10)
33
- pry-stack_explorer (0.4.9.3)
34
- binding_of_caller (>= 0.7)
35
- pry (>= 0.9.11)
36
- rake (10.5.0)
37
- rspec (3.8.0)
38
- rspec-core (~> 3.8.0)
39
- rspec-expectations (~> 3.8.0)
40
- rspec-mocks (~> 3.8.0)
41
- rspec-core (3.8.0)
42
- rspec-support (~> 3.8.0)
43
- rspec-expectations (3.8.3)
44
- diff-lcs (>= 1.2.0, < 2.0)
45
- rspec-support (~> 3.8.0)
46
- rspec-mocks (3.8.0)
47
- diff-lcs (>= 1.2.0, < 2.0)
48
- rspec-support (~> 3.8.0)
49
- rspec-support (3.8.0)
50
- strings (0.1.5)
51
- strings-ansi (~> 0.1)
52
- unicode-display_width (~> 1.5)
53
- unicode_utils (~> 1.4)
54
- strings-ansi (0.1.0)
55
- thor (0.20.3)
56
- timers (4.3.0)
57
- tomlrb (1.2.8)
58
- tty-box (0.3.0)
59
- pastel (~> 0.7.2)
60
- strings (~> 0.1.4)
61
- tty-cursor (~> 0.6.0)
62
- tty-color (0.4.3)
63
- tty-cursor (0.6.1)
64
- tty-prompt (0.18.1)
65
- necromancer (~> 0.4.0)
66
- pastel (~> 0.7.0)
67
- timers (~> 4.0)
68
- tty-cursor (~> 0.6.0)
69
- tty-reader (~> 0.5.0)
70
- tty-reader (0.5.0)
71
- tty-cursor (~> 0.6.0)
72
- tty-screen (~> 0.6.4)
73
- wisper (~> 2.0.0)
74
- tty-screen (0.6.5)
75
- unicode-display_width (1.6.0)
76
- unicode_utils (1.4.0)
77
- wisper (2.0.0)
78
-
79
- PLATFORMS
80
- ruby
81
-
82
- DEPENDENCIES
83
- climate_control (~> 0.2)
84
- license-acceptance!
85
- mixlib-cli (~> 1.7)
86
- pry (~> 0.12)
87
- pry-byebug (~> 3.6)
88
- pry-stack_explorer (~> 0.4)
89
- rake (~> 10.0)
90
- rspec (~> 3.0)
91
- thor (~> 0.20)
92
-
93
- BUNDLED WITH
94
- 1.17.3
data/Rakefile DELETED
@@ -1,6 +0,0 @@
1
- require "bundler/gem_tasks"
2
- require "rspec/core/rake_task"
3
-
4
- RSpec::Core::RakeTask.new(:spec)
5
-
6
- task :default => :spec
@@ -1,301 +0,0 @@
1
- require "spec_helper"
2
- require "license_acceptance/acceptor"
3
-
4
- RSpec.describe LicenseAcceptance::Acceptor do
5
- it "has a version number" do
6
- expect(LicenseAcceptance::VERSION).not_to be nil
7
- end
8
-
9
- let(:output) do
10
- d = StringIO.new
11
- allow(d).to receive(:isatty).and_return(true)
12
- d
13
- end
14
- let(:opts) { { output: output } }
15
- let(:reader) { instance_double(LicenseAcceptance::ProductReader) }
16
- let(:acc) { LicenseAcceptance::Acceptor.new(opts) }
17
- let(:product) { instance_double(LicenseAcceptance::Product, id: "foo", pretty_name: "Foo") }
18
- let(:version) { "version" }
19
- let(:relationship) { instance_double(LicenseAcceptance::ProductRelationship, parent: product) }
20
- let(:missing) { [product] }
21
-
22
- describe "#check_and_persist!" do
23
- before do
24
- expect(LicenseAcceptance::ProductReader).to receive(:new).and_return(reader)
25
- expect(reader).to receive(:read)
26
- end
27
-
28
- let(:err) { LicenseAcceptance::LicenseNotAcceptedError.new(product, [product]) }
29
- it "outputs an error message to stdout and exits when license acceptance is declined" do
30
- expect(acc).to receive(:check_and_persist).and_raise(err)
31
- expect { acc.check_and_persist!(product.id, version) }.to raise_error(SystemExit)
32
- expect(output.string).to match(/#{product.pretty_name}/)
33
- end
34
- end
35
-
36
- describe "#check_and_persist" do
37
- let(:file_acc) { instance_double(LicenseAcceptance::Strategy::File) }
38
- let(:arg_acc) { instance_double(LicenseAcceptance::Strategy::Argument) }
39
- let(:prompt_acc) { instance_double(LicenseAcceptance::Strategy::Prompt) }
40
- let(:env_acc) { instance_double(LicenseAcceptance::Strategy::Environment) }
41
- let(:provided_acc) { instance_double(LicenseAcceptance::Strategy::ProvidedValue) }
42
-
43
- before do
44
- expect(LicenseAcceptance::ProductReader).to receive(:new).and_return(reader)
45
- expect(LicenseAcceptance::Strategy::File).to receive(:new).and_return(file_acc)
46
- expect(LicenseAcceptance::Strategy::Argument).to receive(:new).and_return(arg_acc)
47
- expect(LicenseAcceptance::Strategy::Prompt).to receive(:new).and_return(prompt_acc)
48
- expect(LicenseAcceptance::Strategy::Environment).to receive(:new).and_return(env_acc)
49
- expect(LicenseAcceptance::Strategy::ProvidedValue).to receive(:new).and_return(provided_acc)
50
-
51
- allow(provided_acc).to receive(:no_persist?).and_return(false)
52
- allow(env_acc).to receive(:no_persist?).and_return(false)
53
- allow(arg_acc).to receive(:no_persist?).and_return(false)
54
- allow(provided_acc).to receive(:accepted?).and_return(false)
55
- allow(env_acc).to receive(:accepted?).and_return(false)
56
- allow(arg_acc).to receive(:accepted?).and_return(false)
57
- allow(provided_acc).to receive(:silent?).and_return(false)
58
- allow(env_acc).to receive(:silent?).and_return(false)
59
- allow(arg_acc).to receive(:silent?).and_return(false)
60
-
61
- expect(reader).to receive(:read)
62
- end
63
-
64
- describe "when accept-no-persist is provided from the caller" do
65
- it "returns true" do
66
- expect(provided_acc).to receive(:no_persist?).and_return(true)
67
- expect(acc.check_and_persist(product, version)).to eq(true)
68
- expect(acc.acceptance_value).to eq(LicenseAcceptance::ACCEPT_NO_PERSIST)
69
- end
70
- end
71
-
72
- describe "when accept-no-persist environment variable is set" do
73
- it "returns true" do
74
- expect(env_acc).to receive(:no_persist?).and_return(true)
75
- expect(acc.check_and_persist(product, version)).to eq(true)
76
- expect(acc.acceptance_value).to eq(LicenseAcceptance::ACCEPT_NO_PERSIST)
77
- end
78
- end
79
-
80
- describe "when accept-no-persist command line argument is set" do
81
- it "returns true" do
82
- expect(arg_acc).to receive(:no_persist?).and_return(true)
83
- expect(acc.check_and_persist(product, version)).to eq(true)
84
- expect(acc.acceptance_value).to eq(LicenseAcceptance::ACCEPT_NO_PERSIST)
85
- end
86
- end
87
-
88
- describe "when there are no missing licenses" do
89
- it "returns true" do
90
- expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
91
- expect(file_acc).to receive(:accepted?).with(relationship).and_return([])
92
- expect(acc.check_and_persist(product, version)).to eq(true)
93
- expect(acc.acceptance_value).to eq(LicenseAcceptance::ACCEPT)
94
- end
95
- end
96
-
97
- describe "when the user accepts as an environment variable" do
98
- it "returns true" do
99
- expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
100
- expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
101
- expect(env_acc).to receive(:accepted?).and_return(true)
102
- expect(file_acc).to receive(:persist).with(relationship, missing).and_return([])
103
- expect(acc.check_and_persist(product, version)).to eq(true)
104
- expect(output.string).to match(/1 product license accepted./)
105
- expect(acc.acceptance_value).to eq(LicenseAcceptance::ACCEPT)
106
- end
107
-
108
- describe "when persist is set to false" do
109
- let(:opts) { { output: output, persist: false } }
110
-
111
- it "returns true" do
112
- expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
113
- expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
114
- expect(env_acc).to receive(:accepted?).and_return(true)
115
- expect(acc.check_and_persist(product, version)).to eq(true)
116
- expect(output.string).to_not match(/accepted./)
117
- expect(acc.acceptance_value).to eq(LicenseAcceptance::ACCEPT)
118
- end
119
- end
120
-
121
- describe "when the silent option is used" do
122
- let(:opts) { { output: output } }
123
-
124
- it "returns true and silently persists the file" do
125
- expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
126
- expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
127
- expect(env_acc).to receive(:silent?).times.exactly(3).and_return(true)
128
- expect(file_acc).to receive(:persist).with(relationship, missing).and_return([])
129
- expect(acc.check_and_persist(product, version)).to eq(true)
130
- expect(output.string).to be_empty
131
- expect(acc.acceptance_value).to eq(LicenseAcceptance::ACCEPT_SILENT)
132
- end
133
- end
134
-
135
- describe "when file persistance fails" do
136
- it "returns true" do
137
- expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
138
- expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
139
- expect(env_acc).to receive(:accepted?).and_return(true)
140
- expect(file_acc).to receive(:persist).with(relationship, missing).and_return([StandardError.new("foo")])
141
- expect(acc.check_and_persist(product, version)).to eq(true)
142
- expect(output.string).to match(/Could not persist acceptance:/)
143
- expect(acc.acceptance_value).to eq(LicenseAcceptance::ACCEPT)
144
- end
145
- end
146
- end
147
-
148
- describe "when the user accepts as an arg" do
149
- it "returns true" do
150
- expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
151
- expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
152
- expect(arg_acc).to receive(:accepted?).and_return(true)
153
- expect(file_acc).to receive(:persist).with(relationship, missing).and_return([])
154
- expect(acc.check_and_persist(product, version)).to eq(true)
155
- expect(output.string).to match(/1 product license accepted./)
156
- expect(acc.acceptance_value).to eq(LicenseAcceptance::ACCEPT)
157
- end
158
-
159
- describe "when the silent option is used" do
160
- let(:opts) { { output: output } }
161
-
162
- it "returns true and silently persists the file" do
163
- expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
164
- expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
165
- expect(arg_acc).to receive(:silent?).times.exactly(3).and_return(true)
166
- expect(file_acc).to receive(:persist).with(relationship, missing).and_return([])
167
- expect(acc.check_and_persist(product, version)).to eq(true)
168
- expect(output.string).to be_empty
169
- expect(acc.acceptance_value).to eq(LicenseAcceptance::ACCEPT_SILENT)
170
- end
171
- end
172
-
173
-
174
- describe "when persist is set to false" do
175
- let(:opts) { { output: output, persist: false } }
176
-
177
- it "returns true" do
178
- expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
179
- expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
180
- expect(arg_acc).to receive(:accepted?).and_return(true)
181
- expect(acc.check_and_persist(product, version)).to eq(true)
182
- expect(output.string).to_not match(/accepted./)
183
- expect(acc.acceptance_value).to eq(LicenseAcceptance::ACCEPT)
184
- end
185
- end
186
-
187
- describe "when file persistance fails" do
188
- it "returns true" do
189
- expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
190
- expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
191
- expect(arg_acc).to receive(:accepted?).and_return(true)
192
- expect(file_acc).to receive(:persist).with(relationship, missing).and_return([StandardError.new("bar")])
193
- expect(acc.check_and_persist(product, version)).to eq(true)
194
- expect(output.string).to match(/Could not persist acceptance:/)
195
- expect(acc.acceptance_value).to eq(LicenseAcceptance::ACCEPT)
196
- end
197
- end
198
- end
199
-
200
- describe "when the prompt is not a tty" do
201
- let(:opts) { { output: File.open(File::NULL, "w") } }
202
- it "raises a LicenseNotAcceptedError error" do
203
- expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
204
- expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
205
- expect(prompt_acc).to_not receive(:request)
206
- expect { acc.check_and_persist(product, version) }.to raise_error(LicenseAcceptance::LicenseNotAcceptedError)
207
- expect(acc.acceptance_value).to eq(nil)
208
- end
209
- end
210
-
211
- describe "when the user accepts with the prompt" do
212
- it "returns true" do
213
- expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
214
- expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
215
- expect(prompt_acc).to receive(:request).with(missing).and_yield.and_return(true)
216
- expect(file_acc).to receive(:persist).with(relationship, missing)
217
- expect(acc.check_and_persist(product, version)).to eq(true)
218
- expect(acc.acceptance_value).to eq(LicenseAcceptance::ACCEPT)
219
- end
220
-
221
- describe "when persist is set to false" do
222
- let(:opts) { { output: output, persist: false } }
223
-
224
- it "returns true" do
225
- expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
226
- expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
227
- expect(prompt_acc).to receive(:request).with(missing).and_yield.and_return(true)
228
- expect(acc.check_and_persist(product, version)).to eq(true)
229
- expect(acc.acceptance_value).to eq(LicenseAcceptance::ACCEPT_NO_PERSIST)
230
- end
231
- end
232
- end
233
-
234
- describe "when the user declines with the prompt" do
235
- it "raises a LicenseNotAcceptedError error" do
236
- expect(reader).to receive(:lookup).with(product, version).and_return(relationship)
237
- expect(file_acc).to receive(:accepted?).with(relationship).and_return(missing)
238
- expect(prompt_acc).to receive(:request).with(missing).and_return(false)
239
- expect { acc.check_and_persist(product, version) }.to raise_error(LicenseAcceptance::LicenseNotAcceptedError)
240
- expect(acc.acceptance_value).to eq(nil)
241
- end
242
- end
243
- end
244
-
245
- describe "#license_required?" do
246
- let(:reader) { instance_double(LicenseAcceptance::ProductReader) }
247
- let(:mixlib_name) { "chef" }
248
- let(:version) { "15.0.0" }
249
- let(:product) { instance_double(LicenseAcceptance::Product, id: "foo", license_required_version: "15.0.0") }
250
-
251
- before do
252
- expect(LicenseAcceptance::ProductReader).to receive(:new).and_return(reader)
253
- expect(reader).to receive(:read)
254
- end
255
-
256
- it "returns false if no product can be found" do
257
- expect(reader).to receive(:lookup_by_mixlib).with(mixlib_name).and_return nil
258
- expect(acc.license_required?(mixlib_name, version)).to eq(false)
259
- end
260
-
261
- describe "when version is :latest" do
262
- let(:version) { :latest }
263
- it "returns true" do
264
- expect(reader).to receive(:lookup_by_mixlib).with(mixlib_name).and_return product
265
- expect(acc.license_required?(mixlib_name, version)).to eq(true)
266
- end
267
- end
268
-
269
- describe "when version is 'latest'" do
270
- let(:version) { "latest" }
271
- it "returns true" do
272
- expect(reader).to receive(:lookup_by_mixlib).with(mixlib_name).and_return product
273
- expect(acc.license_required?(mixlib_name, version)).to eq(true)
274
- end
275
- end
276
-
277
- describe "when version is nil" do
278
- let(:version) { nil }
279
- it "returns true" do
280
- expect(reader).to receive(:lookup_by_mixlib).with(mixlib_name).and_return product
281
- expect(acc.license_required?(mixlib_name, version)).to eq(true)
282
- end
283
- end
284
-
285
- describe "when version is >= than required version" do
286
- let(:version) { "15.0.0" }
287
- it "returns true" do
288
- expect(reader).to receive(:lookup_by_mixlib).with(mixlib_name).and_return product
289
- expect(acc.license_required?(mixlib_name, version)).to eq(true)
290
- end
291
- end
292
-
293
- describe "when version is < required version" do
294
- let(:version) { "14.99.99" }
295
- it "returns false" do
296
- expect(reader).to receive(:lookup_by_mixlib).with(mixlib_name).and_return product
297
- expect(acc.license_required?(mixlib_name, version)).to eq(false)
298
- end
299
- end
300
- end
301
- end