knife 18.8.68 → 19.0.102

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.
Files changed (87) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +30 -9
  3. data/LICENSE +201 -201
  4. data/Rakefile +23 -0
  5. data/knife.gemspec +9 -15
  6. data/lib/chef/application/knife.rb +3 -5
  7. data/lib/chef/chef_fs/knife.rb +1 -1
  8. data/lib/chef/knife/acl_base.rb +1 -1
  9. data/lib/chef/knife/acl_bulk_add.rb +0 -1
  10. data/lib/chef/knife/acl_bulk_remove.rb +0 -1
  11. data/lib/chef/knife/bootstrap/templates/chef-full.erb +24 -5
  12. data/lib/chef/knife/bootstrap/templates/windows-chef-client-msi.erb +121 -4
  13. data/lib/chef/knife/bootstrap.rb +25 -29
  14. data/lib/chef/knife/config_get.rb +1 -1
  15. data/lib/chef/knife/config_get_profile.rb +1 -1
  16. data/lib/chef/knife/config_list_profiles.rb +1 -1
  17. data/lib/chef/knife/config_show.rb +1 -1
  18. data/lib/chef/knife/config_use_profile.rb +3 -3
  19. data/lib/chef/knife/configure_client.rb +1 -1
  20. data/lib/chef/knife/cookbook_bulk_delete.rb +1 -1
  21. data/lib/chef/knife/cookbook_delete.rb +1 -1
  22. data/lib/chef/knife/cookbook_download.rb +1 -1
  23. data/lib/chef/knife/cookbook_upload.rb +1 -1
  24. data/lib/chef/knife/core/bootstrap_context.rb +36 -6
  25. data/lib/chef/knife/core/cookbook_scm_repo.rb +2 -2
  26. data/lib/chef/knife/core/cookbook_site_streaming_uploader.rb +1 -6
  27. data/lib/chef/knife/core/gem_glob_loader.rb +4 -4
  28. data/lib/chef/knife/core/object_loader.rb +1 -1
  29. data/lib/chef/knife/core/status_presenter.rb +1 -1
  30. data/lib/chef/knife/core/subcommand_loader.rb +1 -1
  31. data/lib/chef/knife/core/text_formatter.rb +0 -1
  32. data/lib/chef/knife/core/windows_bootstrap_context.rb +103 -37
  33. data/lib/chef/knife/data_bag_secret_options.rb +1 -1
  34. data/lib/chef/knife/download.rb +1 -1
  35. data/lib/chef/knife/environment_compare.rb +2 -3
  36. data/lib/chef/knife/key_create.rb +1 -5
  37. data/lib/chef/knife/key_edit.rb +1 -5
  38. data/lib/chef/knife/license.rb +6 -2
  39. data/lib/chef/knife/list.rb +1 -1
  40. data/lib/chef/knife/node_edit.rb +1 -1
  41. data/lib/chef/knife/raw.rb +1 -2
  42. data/lib/chef/knife/recipe_list.rb +1 -1
  43. data/lib/chef/knife/search.rb +2 -2
  44. data/lib/chef/knife/ssh.rb +5 -5
  45. data/lib/chef/knife/ssl_fetch.rb +1 -1
  46. data/lib/chef/knife/supermarket_share.rb +3 -2
  47. data/lib/chef/knife/upload.rb +1 -1
  48. data/lib/chef/knife/user_create.rb +11 -21
  49. data/lib/chef/knife/user_list.rb +3 -3
  50. data/lib/chef/knife/version.rb +1 -3
  51. data/lib/chef/knife/xargs.rb +0 -1
  52. data/lib/chef/knife.rb +4 -1
  53. data/lib/chef/utils/licensing_config.rb +0 -1
  54. data/lib/chef/utils/licensing_handler.rb +18 -28
  55. data/spec/data/apt/chef-integration-test-1.0/debian/rules +0 -0
  56. data/spec/data/apt/chef-integration-test-1.1/debian/rules +0 -0
  57. data/spec/data/apt/chef-integration-test2-1.0/debian/rules +0 -0
  58. data/spec/data/cookbooks/openldap/templates/default/all_windows_line_endings.erb +4 -4
  59. data/spec/data/cookbooks/openldap/templates/default/some_windows_line_endings.erb +2 -2
  60. data/spec/functional/cookbook_delete_spec.rb +4 -4
  61. data/spec/functional/version_spec.rb +2 -3
  62. data/spec/integration/config_use_spec.rb +8 -8
  63. data/spec/integration/cookbook_api_ipv6_spec.rb +2 -2
  64. data/spec/integration/node_environment_set_spec.rb +1 -1
  65. data/spec/integration/node_run_list_set_spec.rb +1 -1
  66. data/spec/knife_spec_helper.rb +0 -5
  67. data/spec/support/platforms/prof/gc.rb +1 -1
  68. data/spec/support/shared/integration/integration_helper.rb +1 -1
  69. data/spec/tiny_server.rb +2 -2
  70. data/spec/unit/knife/bootstrap/templates/windows_presigned_url_spec.rb +183 -0
  71. data/spec/unit/knife/bootstrap_chef19_spec.rb +122 -0
  72. data/spec/unit/knife/bootstrap_spec.rb +121 -7
  73. data/spec/unit/knife/configure_spec.rb +3 -3
  74. data/spec/unit/knife/cookbook_list_spec.rb +1 -1
  75. data/spec/unit/knife/core/bootstrap_context_spec.rb +137 -0
  76. data/spec/unit/knife/core/windows_bootstrap_context_chef19_spec.rb +82 -0
  77. data/spec/unit/knife/core/windows_bootstrap_context_spec.rb +51 -64
  78. data/spec/unit/knife/license_spec.rb +1 -1
  79. data/spec/unit/knife/search_spec.rb +3 -3
  80. data/spec/unit/knife/supermarket_install_spec.rb +4 -5
  81. data/spec/unit/knife/utils/licensing_handler_chef19_spec.rb +144 -0
  82. metadata +61 -100
  83. data/spec/data/gems/chef-integration-test-0.1.0.gem +0 -0
  84. data/spec/data/nodes/default.rb +0 -15
  85. data/spec/data/nodes/test.example.com.rb +0 -17
  86. data/spec/data/nodes/test.rb +0 -15
  87. data/spec/unit/utils/licensing_handler_spec.rb +0 -140
metadata CHANGED
@@ -1,97 +1,47 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knife
3
3
  version: !ruby/object:Gem::Version
4
- version: 18.8.68
4
+ version: 19.0.102
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Jacob
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-12-10 00:00:00.000000000 Z
11
+ date: 2026-04-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: chef-config
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - "~>"
18
- - !ruby/object:Gem::Version
19
- version: '18.0'
20
- type: :runtime
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - "~>"
25
- - !ruby/object:Gem::Version
26
- version: '18.0'
27
- - !ruby/object:Gem::Dependency
28
- name: chef-utils
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '18.0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '18.0'
41
- - !ruby/object:Gem::Dependency
42
- name: chef
14
+ name: train-core
43
15
  requirement: !ruby/object:Gem::Requirement
44
16
  requirements:
45
17
  - - "~>"
46
18
  - !ruby/object:Gem::Version
47
- version: '18.0'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '18.0'
55
- - !ruby/object:Gem::Dependency
56
- name: chef-bin
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
19
+ version: '3.13'
20
+ - - ">="
60
21
  - !ruby/object:Gem::Version
61
- version: '18.0'
22
+ version: 3.13.4
62
23
  type: :runtime
63
24
  prerelease: false
64
25
  version_requirements: !ruby/object:Gem::Requirement
65
26
  requirements:
66
27
  - - "~>"
67
28
  - !ruby/object:Gem::Version
68
- version: '18.0'
69
- - !ruby/object:Gem::Dependency
70
- name: train-core
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '3.10'
76
- type: :runtime
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
29
+ version: '3.13'
30
+ - - ">="
81
31
  - !ruby/object:Gem::Version
82
- version: '3.10'
32
+ version: 3.13.4
83
33
  - !ruby/object:Gem::Dependency
84
34
  name: train-winrm
85
35
  requirement: !ruby/object:Gem::Requirement
86
36
  requirements:
87
- - - "~>"
37
+ - - ">="
88
38
  - !ruby/object:Gem::Version
89
39
  version: 0.2.17
90
40
  type: :runtime
91
41
  prerelease: false
92
42
  version_requirements: !ruby/object:Gem::Requirement
93
43
  requirements:
94
- - - "~>"
44
+ - - ">="
95
45
  - !ruby/object:Gem::Version
96
46
  version: 0.2.17
97
47
  - !ruby/object:Gem::Dependency
@@ -154,20 +104,6 @@ dependencies:
154
104
  - - "<"
155
105
  - !ruby/object:Gem::Version
156
106
  version: '2.0'
157
- - !ruby/object:Gem::Dependency
158
- name: ohai
159
- requirement: !ruby/object:Gem::Requirement
160
- requirements:
161
- - - "~>"
162
- - !ruby/object:Gem::Version
163
- version: '18.0'
164
- type: :runtime
165
- prerelease: false
166
- version_requirements: !ruby/object:Gem::Requirement
167
- requirements:
168
- - - "~>"
169
- - !ruby/object:Gem::Version
170
- version: '18.0'
171
107
  - !ruby/object:Gem::Dependency
172
108
  name: ffi
173
109
  requirement: !ruby/object:Gem::Requirement
@@ -175,6 +111,9 @@ dependencies:
175
111
  - - ">="
176
112
  - !ruby/object:Gem::Version
177
113
  version: '1.15'
114
+ - - "<"
115
+ - !ruby/object:Gem::Version
116
+ version: 1.18.0
178
117
  type: :runtime
179
118
  prerelease: false
180
119
  version_requirements: !ruby/object:Gem::Requirement
@@ -182,6 +121,9 @@ dependencies:
182
121
  - - ">="
183
122
  - !ruby/object:Gem::Version
184
123
  version: '1.15'
124
+ - - "<"
125
+ - !ruby/object:Gem::Version
126
+ version: 1.18.0
185
127
  - !ruby/object:Gem::Dependency
186
128
  name: ffi-yajl
187
129
  requirement: !ruby/object:Gem::Requirement
@@ -250,6 +192,26 @@ dependencies:
250
192
  - - "~>"
251
193
  - !ruby/object:Gem::Version
252
194
  version: '1.1'
195
+ - !ruby/object:Gem::Dependency
196
+ name: ed25519
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '1.2'
202
+ - - "<"
203
+ - !ruby/object:Gem::Version
204
+ version: '2.0'
205
+ type: :runtime
206
+ prerelease: false
207
+ version_requirements: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - ">="
210
+ - !ruby/object:Gem::Version
211
+ version: '1.2'
212
+ - - "<"
213
+ - !ruby/object:Gem::Version
214
+ version: '2.0'
253
215
  - !ruby/object:Gem::Dependency
254
216
  name: highline
255
217
  requirement: !ruby/object:Gem::Requirement
@@ -270,6 +232,20 @@ dependencies:
270
232
  - - "<"
271
233
  - !ruby/object:Gem::Version
272
234
  version: '3'
235
+ - !ruby/object:Gem::Dependency
236
+ name: abbrev
237
+ requirement: !ruby/object:Gem::Requirement
238
+ requirements:
239
+ - - ">="
240
+ - !ruby/object:Gem::Version
241
+ version: '0'
242
+ type: :runtime
243
+ prerelease: false
244
+ version_requirements: !ruby/object:Gem::Requirement
245
+ requirements:
246
+ - - ">="
247
+ - !ruby/object:Gem::Version
248
+ version: '0'
273
249
  - !ruby/object:Gem::Dependency
274
250
  name: tty-prompt
275
251
  requirement: !ruby/object:Gem::Requirement
@@ -355,19 +331,19 @@ dependencies:
355
331
  - !ruby/object:Gem::Version
356
332
  version: '0'
357
333
  - !ruby/object:Gem::Dependency
358
- name: chefstyle
334
+ name: cookstyle
359
335
  requirement: !ruby/object:Gem::Requirement
360
336
  requirements:
361
337
  - - ">="
362
338
  - !ruby/object:Gem::Version
363
- version: '0'
339
+ version: 7.32.8
364
340
  type: :development
365
341
  prerelease: false
366
342
  version_requirements: !ruby/object:Gem::Requirement
367
343
  requirements:
368
344
  - - ">="
369
345
  - !ruby/object:Gem::Version
370
- version: '0'
346
+ version: 7.32.8
371
347
  - !ruby/object:Gem::Dependency
372
348
  name: proxifier2
373
349
  requirement: !ruby/object:Gem::Requirement
@@ -388,28 +364,14 @@ dependencies:
388
364
  requirements:
389
365
  - - "~>"
390
366
  - !ruby/object:Gem::Version
391
- version: '1.0'
392
- type: :runtime
393
- prerelease: false
394
- version_requirements: !ruby/object:Gem::Requirement
395
- requirements:
396
- - - "~>"
397
- - !ruby/object:Gem::Version
398
- version: '1.0'
399
- - !ruby/object:Gem::Dependency
400
- name: chef-zero
401
- requirement: !ruby/object:Gem::Requirement
402
- requirements:
403
- - - "~>"
404
- - !ruby/object:Gem::Version
405
- version: 15.0.21
367
+ version: '1.2'
406
368
  type: :runtime
407
369
  prerelease: false
408
370
  version_requirements: !ruby/object:Gem::Requirement
409
371
  requirements:
410
372
  - - "~>"
411
373
  - !ruby/object:Gem::Version
412
- version: 15.0.21
374
+ version: '1.2'
413
375
  description: The knife CLI for Chef Infra.
414
376
  email: adam@chef.io
415
377
  executables:
@@ -769,7 +731,6 @@ files:
769
731
  - spec/data/file-providers-method-snapshot-chef-11-4.json
770
732
  - spec/data/fileedit/blank
771
733
  - spec/data/fileedit/hosts
772
- - spec/data/gems/chef-integration-test-0.1.0.gem
773
734
  - spec/data/git_bundles/example-repo.gitbundle
774
735
  - spec/data/git_bundles/sinatra-test-app-with-callback-files.gitbundle
775
736
  - spec/data/git_bundles/sinatra-test-app-with-symlinks.gitbundle
@@ -820,9 +781,6 @@ files:
820
781
  - spec/data/mixin/invalid_data.rb
821
782
  - spec/data/mixin/real_data.rb
822
783
  - spec/data/nested.json
823
- - spec/data/nodes/default.rb
824
- - spec/data/nodes/test.example.com.rb
825
- - spec/data/nodes/test.rb
826
784
  - spec/data/null_config.rb
827
785
  - spec/data/object_loader/environments/test.json
828
786
  - spec/data/object_loader/environments/test.rb
@@ -1060,7 +1018,9 @@ files:
1060
1018
  - spec/unit/application/knife_spec.rb
1061
1019
  - spec/unit/knife/bootstrap/chef_vault_handler_spec.rb
1062
1020
  - spec/unit/knife/bootstrap/client_builder_spec.rb
1021
+ - spec/unit/knife/bootstrap/templates/windows_presigned_url_spec.rb
1063
1022
  - spec/unit/knife/bootstrap/train_connector_spec.rb
1023
+ - spec/unit/knife/bootstrap_chef19_spec.rb
1064
1024
  - spec/unit/knife/bootstrap_spec.rb
1065
1025
  - spec/unit/knife/client_bulk_delete_spec.rb
1066
1026
  - spec/unit/knife/client_create_spec.rb
@@ -1089,6 +1049,7 @@ files:
1089
1049
  - spec/unit/knife/core/status_presenter_spec.rb
1090
1050
  - spec/unit/knife/core/subcommand_loader_spec.rb
1091
1051
  - spec/unit/knife/core/ui_spec.rb
1052
+ - spec/unit/knife/core/windows_bootstrap_context_chef19_spec.rb
1092
1053
  - spec/unit/knife/core/windows_bootstrap_context_spec.rb
1093
1054
  - spec/unit/knife/data_bag_create_spec.rb
1094
1055
  - spec/unit/knife/data_bag_edit_spec.rb
@@ -1165,8 +1126,8 @@ files:
1165
1126
  - spec/unit/knife/user_password_spec.rb
1166
1127
  - spec/unit/knife/user_reregister_spec.rb
1167
1128
  - spec/unit/knife/user_show_spec.rb
1129
+ - spec/unit/knife/utils/licensing_handler_chef19_spec.rb
1168
1130
  - spec/unit/knife_spec.rb
1169
- - spec/unit/utils/licensing_handler_spec.rb
1170
1131
  homepage: https://www.chef.io
1171
1132
  licenses:
1172
1133
  - Apache-2.0
@@ -1185,7 +1146,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
1185
1146
  requirements:
1186
1147
  - - ">="
1187
1148
  - !ruby/object:Gem::Version
1188
- version: 3.1.0
1149
+ version: '3.1'
1189
1150
  required_rubygems_version: !ruby/object:Gem::Requirement
1190
1151
  requirements:
1191
1152
  - - ">="
@@ -1,15 +0,0 @@
1
- ##
2
- # Nodes should have a unique name
3
- ##
4
- name "test.example.com-default"
5
-
6
- ##
7
- # Nodes can set arbitrary arguments
8
- ##
9
- default[:sunshine] = "in"
10
- default[:something] = "else"
11
-
12
- ##
13
- # Nodes should have recipes
14
- ##
15
- run_list "operations-master", "operations-monitoring"
@@ -1,17 +0,0 @@
1
- ##
2
- # Nodes should have a unique name
3
- ##
4
- name "test.example.com"
5
-
6
- ##
7
- # Nodes can set arbitrary arguments
8
- ##
9
- normal[:sunshine] = "in"
10
- normal[:something] = "else"
11
-
12
- ##
13
- # Nodes should have recipes
14
- ##
15
- run_list "operations-master", "operations-monitoring"
16
-
17
- chef_environment "dev"
@@ -1,15 +0,0 @@
1
- ##
2
- # Nodes should have a unique name
3
- ##
4
- name "test.example.com-short"
5
-
6
- ##
7
- # Nodes can set arbitrary arguments
8
- ##
9
- default[:sunshine] = "in"
10
- default[:something] = "else"
11
-
12
- ##
13
- # Nodes should have recipes
14
- ##
15
- run_list "operations-master", "operations-monitoring"
@@ -1,140 +0,0 @@
1
- #
2
- # Copyright:: Copyright (c) Chef Software Inc.
3
- # License:: Apache License, Version 2.0
4
- #
5
- # Licensed under the Apache License, Version 2.0 (the "License");
6
- # you may not use this file except in compliance with the License.
7
- # You may obtain a copy of the License at
8
- #
9
- # http://www.apache.org/licenses/LICENSE-2.0
10
- #
11
- # Unless required by applicable law or agreed to in writing, software
12
- # distributed under the License is distributed on an "AS IS" BASIS,
13
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
- # See the License for the specific language governing permissions and
15
- # limitations under the License.
16
- #
17
-
18
- require "knife_spec_helper"
19
- require "chef/utils/licensing_handler"
20
-
21
- describe Chef::Utils::LicensingHandler do
22
- let(:license_key) { "abc123" }
23
- let(:license_type) { "commercial" }
24
- let(:handler) { described_class.new(license_key, license_type) }
25
-
26
- describe "#initialize" do
27
- it "sets the license key and type" do
28
- expect(handler.license_key).to eq(license_key)
29
- expect(handler.license_type).to eq(license_type)
30
- end
31
- end
32
-
33
- describe "#omnitruck_url" do
34
- context "with a commercial license" do
35
- it "returns the commercial URL with the license key" do
36
- expected_url = "https://chefdownload-commerical.chef.io/%s?license_id=abc123"
37
- expect(handler.omnitruck_url).to eq(expected_url)
38
- end
39
- end
40
-
41
- context "with a trial license" do
42
- let(:license_type) { "trial" }
43
-
44
- it "returns the trial URL with the license key" do
45
- expected_url = "https://chefdownload-trial.chef.io/%s?license_id=abc123"
46
- expect(handler.omnitruck_url).to eq(expected_url)
47
- end
48
- end
49
-
50
- context "with a free license" do
51
- let(:license_type) { "free" }
52
-
53
- it "returns the free (trial) URL with the license key" do
54
- expected_url = "https://chefdownload-trial.chef.io/%s?license_id=abc123"
55
- expect(handler.omnitruck_url).to eq(expected_url)
56
- end
57
- end
58
-
59
- context "with an unknown license type" do
60
- let(:license_type) { "unknown" }
61
-
62
- it "returns the legacy URL without the license key" do
63
- expected_url = "https://omnitruck.chef.io/%s"
64
- expect(handler.omnitruck_url).to eq(expected_url)
65
- end
66
- end
67
-
68
- context "with no license key" do
69
- let(:license_key) { nil }
70
- let(:license_type) { nil }
71
-
72
- it "returns the legacy URL without a license ID parameter" do
73
- expected_url = "https://omnitruck.chef.io/%s"
74
- expect(handler.omnitruck_url).to eq(expected_url)
75
- end
76
- end
77
- end
78
-
79
- describe "#install_sh_url" do
80
- it "formats the omnitruck URL with install.sh" do
81
- expect(handler).to receive(:omnitruck_url).and_return("https://example.com/%s?license_id=abc123")
82
- expect(handler.install_sh_url).to eq("https://example.com/install.sh?license_id=abc123")
83
- end
84
- end
85
-
86
- describe ".validate!" do
87
- let(:license_keys) { ["abc123"] }
88
- let(:license_metadata) do
89
- double("license_metadata", id: license_key, license_type: license_type)
90
- end
91
- let(:licenses_metadata) { [license_metadata] }
92
-
93
- before do
94
- allow(ChefLicensing::LicenseKeyFetcher).to receive(:fetch).and_return(license_keys)
95
- allow(ChefLicensing::Api::Describe).to receive(:list).and_return(licenses_metadata)
96
- end
97
-
98
- context "when license keys are available" do
99
- it "returns a new handler with the license key and type" do
100
- handler = described_class.validate!
101
- expect(handler.license_key).to eq(license_key)
102
- expect(handler.license_type).to eq(license_type)
103
- end
104
-
105
- it "fetches license keys using ChefLicensing::LicenseKeyFetcher" do
106
- expect(ChefLicensing::LicenseKeyFetcher).to receive(:fetch).and_return(license_keys)
107
- described_class.validate!
108
- end
109
-
110
- it "gets license metadata using ChefLicensing::Api::Describe" do
111
- expect(ChefLicensing::Api::Describe).to receive(:list).with({
112
- license_keys: license_keys,
113
- }).and_return(licenses_metadata)
114
- described_class.validate!
115
- end
116
- end
117
-
118
- context "when no license keys are available" do
119
- let(:license_keys) { [] }
120
-
121
- it "returns a new handler with nil license key and type" do
122
- handler = described_class.validate!
123
- expect(handler.license_key).to be_nil
124
- expect(handler.license_type).to be_nil
125
- end
126
- end
127
-
128
- context "when ChefLicensing::RestfulClientConnectionError is raised" do
129
- before do
130
- allow(ChefLicensing::LicenseKeyFetcher).to receive(:fetch).and_raise(ChefLicensing::RestfulClientConnectionError)
131
- end
132
-
133
- it "returns a new handler with nil license key and type" do
134
- handler = described_class.validate!
135
- expect(handler.license_key).to be_nil
136
- expect(handler.license_type).to be_nil
137
- end
138
- end
139
- end
140
- end