roku_builder 3.3.3 → 3.3.4

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 (42) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +1158 -0
  4. data/.travis.yml +3 -0
  5. data/Gemfile.lock +19 -14
  6. data/README.md +5 -0
  7. data/bin/roku +32 -37
  8. data/config.json.example +2 -2
  9. data/lib/roku_builder/config_manager.rb +83 -118
  10. data/lib/roku_builder/config_parser.rb +192 -0
  11. data/lib/roku_builder/config_validator.rb +125 -0
  12. data/lib/roku_builder/controller.rb +97 -484
  13. data/lib/roku_builder/controller_commands.rb +112 -0
  14. data/lib/roku_builder/error_handler.rb +116 -0
  15. data/lib/roku_builder/inspector.rb +5 -18
  16. data/lib/roku_builder/keyer.rb +3 -11
  17. data/lib/roku_builder/linker.rb +3 -15
  18. data/lib/roku_builder/loader.rb +52 -89
  19. data/lib/roku_builder/manifest_manager.rb +2 -3
  20. data/lib/roku_builder/monitor.rb +15 -12
  21. data/lib/roku_builder/navigator.rb +2 -10
  22. data/lib/roku_builder/packager.rb +1 -7
  23. data/lib/roku_builder/tester.rb +1 -0
  24. data/lib/roku_builder/util.rb +39 -0
  25. data/lib/roku_builder/version.rb +1 -1
  26. data/lib/roku_builder.rb +96 -1
  27. data/roku_builder.gemspec +5 -4
  28. data/tests/roku_builder/config_manager_test.rb +80 -241
  29. data/tests/roku_builder/{controller_config_test.rb → config_parser_test.rb} +5 -5
  30. data/tests/roku_builder/config_validator_test.rb +158 -0
  31. data/tests/roku_builder/controller_commands_test.rb +304 -0
  32. data/tests/roku_builder/controller_test.rb +61 -620
  33. data/tests/roku_builder/error_handler_test.rb +76 -0
  34. data/tests/roku_builder/inspector_test.rb +3 -0
  35. data/tests/roku_builder/keyer_test.rb +3 -2
  36. data/tests/roku_builder/linker_test.rb +2 -1
  37. data/tests/roku_builder/loader_test.rb +2 -0
  38. data/tests/roku_builder/manifest_manager_test.rb +3 -6
  39. data/tests/roku_builder/monitor_test.rb +5 -13
  40. data/tests/roku_builder/navigator_test.rb +2 -0
  41. data/tests/roku_builder/test_helper.rb +38 -0
  42. metadata +34 -11
@@ -5,6 +5,7 @@ module RokuBuilder
5
5
  # with other testing libraries
6
6
  class Tester < Util
7
7
 
8
+ # Initialize starting and ending regular expressions
8
9
  def init()
9
10
  @end_reg = /\*\*\*\*\* ENDING TESTS \*\*\*\*\*/
10
11
  @start_reg = /\*\*\*\*\* STARTING TESTS \*\*\*\*\*/
@@ -27,5 +27,44 @@ module RokuBuilder
27
27
  def init
28
28
  #Override in subclass
29
29
  end
30
+
31
+ # Generates a simpe Faraday connection with digest credentials
32
+ # @return [Faraday] The faraday connection
33
+ def simple_connection
34
+ Faraday.new(url: @url) do |f|
35
+ f.request :digest, @dev_username, @dev_password
36
+ f.adapter Faraday.default_adapter
37
+ end
38
+ end
39
+
40
+ # Generates a multipart Faraday connection with digest credentials
41
+ # @param port [Integer] optional port to connect to
42
+ # @return [Faraday] The faraday connection
43
+ def multipart_connection(port: nil)
44
+ url = @url
45
+ url = "#{url}:#{port}" if port
46
+ Faraday.new(url: url) do |f|
47
+ f.headers['Content-Type'] = Faraday::Request::Multipart.mime_type
48
+ f.request :digest, @dev_username, @dev_password
49
+ f.request :multipart
50
+ f.request :url_encoded
51
+ f.adapter Faraday.default_adapter
52
+ end
53
+ end
54
+
55
+ # Parses a string into and options hash
56
+ # @param options [String] string of options in the format "a:b, c:d"
57
+ # @return [Hash] Options hash generated
58
+ def self.options_parse(options:)
59
+ parsed = {}
60
+ opts = options.split(/,\s*/)
61
+ opts.each do |opt|
62
+ opt = opt.split(":")
63
+ key = opt.shift.to_sym
64
+ value = opt.join(":")
65
+ parsed[key] = value
66
+ end
67
+ parsed
68
+ end
30
69
  end
31
70
  end
@@ -1,4 +1,4 @@
1
1
  module RokuBuilder
2
2
  # Version of the RokuBuilder Gem
3
- VERSION = "3.3.3"
3
+ VERSION = "3.3.4"
4
4
  end
data/lib/roku_builder.rb CHANGED
@@ -13,6 +13,7 @@ require "git"
13
13
  require 'json'
14
14
 
15
15
  require "roku_builder/controller"
16
+ require "roku_builder/controller_commands"
16
17
  require "roku_builder/util"
17
18
  require "roku_builder/keyer"
18
19
  require "roku_builder/inspector"
@@ -22,11 +23,105 @@ require "roku_builder/linker"
22
23
  require "roku_builder/tester"
23
24
  require "roku_builder/manifest_manager"
24
25
  require "roku_builder/config_manager"
26
+ require "roku_builder/config_validator"
27
+ require "roku_builder/config_parser"
28
+ require "roku_builder/error_handler"
25
29
  require "roku_builder/navigator"
26
30
  require "roku_builder/monitor"
27
31
  require "roku_builder/version"
28
32
 
29
33
  # Wrapping module for the Roku Builder Gem
30
34
  module RokuBuilder
31
- # For documentation
35
+
36
+ ### Global Codes ###
37
+
38
+ # Success
39
+ SUCCESS = 0
40
+
41
+ ### Validation Codes ###
42
+
43
+ # Valid Options
44
+ VALID = 0
45
+
46
+ # Too many commands given
47
+ EXTRA_COMMANDS = 1
48
+
49
+ # No commands given
50
+ NO_COMMANDS = 2
51
+
52
+ # Too many source options given
53
+ EXTRA_SOURCES = 3
54
+
55
+ # No source options given
56
+ NO_SOURCE = 4
57
+
58
+ # Incorrect use of current option
59
+ BAD_CURRENT = 5
60
+
61
+ # No deeplink options supplied for deeplink
62
+ BAD_DEEPLINK = 6
63
+
64
+ # Incorrect use of the in option
65
+ BAD_IN_FILE = 7
66
+
67
+
68
+
69
+ ### Device Codes ###
70
+
71
+ # The default device is offline switched to a secondary device
72
+ CHANGED_DEVICE = -1
73
+
74
+ # Device is online
75
+ GOOD_DEVICE = 0
76
+
77
+ # User defined device was not online
78
+ BAD_DEVICE = 1
79
+
80
+ # No configured devices were online
81
+ NO_DEVICES = 2
82
+
83
+
84
+ ### Execute Codes ###
85
+
86
+ # Config has deplicated options
87
+ DEPRICATED_CONFIG = -1
88
+
89
+ # Tring to overwrite existing config file
90
+ CONFIG_OVERWRITE = 1
91
+
92
+ # Missing config file
93
+ MISSING_CONFIG = 2
94
+
95
+ # Invalid config file
96
+ INVALID_CONFIG = 3
97
+
98
+ # Missing manifest file
99
+ MISSING_MANIFEST = 4
100
+
101
+ # Unknow device given
102
+ UNKNOWN_DEVICE = 5
103
+
104
+ # Unknown project given
105
+ UNKNOWN_PROJECT = 6
106
+
107
+ # Unknown stage given
108
+ UNKNOWN_STAGE = 7
109
+
110
+
111
+ ### Execute Codes ###
112
+
113
+ # Failed to sideload app
114
+ FAILED_SIDELOAD = 8
115
+
116
+ # Failed to sign app
117
+ FAILED_SIGNING = 9
118
+
119
+ # Failed to deeplink to app
120
+ FAILED_DEEPLINKING = 10
121
+
122
+ # Failed to send navigation command
123
+ FAILED_NAVIGATING = 11
124
+
125
+ # Failed to capture screen
126
+ FAILED_SCREENCAPTURE = 12
32
127
  end
data/roku_builder.gemspec CHANGED
@@ -20,19 +20,20 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.required_ruby_version = "~> 2.2"
22
22
 
23
- spec.add_dependency "rubyzip", "~> 1.1"
23
+ spec.add_dependency "rubyzip", "~> 1.2"
24
24
  spec.add_dependency "faraday", "~> 0.9"
25
25
  spec.add_dependency "faraday-digestauth", "~> 0.2"
26
- spec.add_dependency "git", "~> 1.2.9"
26
+ spec.add_dependency "git", "~> 1.3"
27
27
  spec.add_dependency "net-ping", "~> 1.7"
28
28
 
29
29
  spec.add_development_dependency "bundler", "~> 1.7"
30
- spec.add_development_dependency "rake", "~> 10.0"
31
- spec.add_development_dependency "byebug", "~> 3.5"
30
+ spec.add_development_dependency "rake", "~> 11.1"
31
+ spec.add_development_dependency "byebug", "~> 8.2"
32
32
  spec.add_development_dependency "minitest", "~> 5.8"
33
33
  spec.add_development_dependency "minitest-autotest", "~> 1.0"
34
34
  spec.add_development_dependency "minitest-server", "~> 1.0"
35
35
  spec.add_development_dependency "simplecov", "~> 0.11"
36
+ spec.add_development_dependency "coveralls", "~> 0.8"
36
37
  spec.add_development_dependency "yard", "~> 0.8.7"
37
38
  spec.add_development_dependency "guard-livereload", "~> 2.5"
38
39
  end
@@ -16,6 +16,71 @@ class ConfigManagerTest < Minitest::Test
16
16
  assert_equal :project1, config[:projects][:default], :project1
17
17
  end
18
18
 
19
+ def test_config_manger_load_config
20
+ logger = Logger.new("/dev/null")
21
+ target_config = File.join(File.dirname(__FILE__), "test_files", "controller_test", "configure_test.json")
22
+ File.delete(target_config) if File.exist?(target_config)
23
+
24
+ code = nil
25
+ config = nil
26
+ configs = nil
27
+ # Test Missing Config
28
+ options = {validate: true, config: target_config}
29
+ code = RokuBuilder::ConfigManager.load_config(options: options, logger: logger)
30
+ assert_equal RokuBuilder::MISSING_CONFIG, code
31
+
32
+ FileUtils.cp(File.join(File.dirname(target_config), "valid_config.json"), target_config)
33
+
34
+ # Test Invalid config json
35
+ options = {validate: true, config: target_config}
36
+ RokuBuilder::ConfigManager.stub(:get_config, nil) do
37
+ code = RokuBuilder::ConfigManager.load_config(options: options, logger: logger)
38
+ end
39
+ assert_equal RokuBuilder::INVALID_CONFIG, code
40
+ assert_nil config
41
+ assert_nil configs
42
+
43
+ # Test Invalid config
44
+ options = {validate: true, config: target_config}
45
+ RokuBuilder::ConfigValidator.stub(:validate_config, [1]) do
46
+ code, config, configs = RokuBuilder::ConfigManager.load_config(options: options, logger: logger)
47
+ end
48
+ assert_equal RokuBuilder::INVALID_CONFIG, code
49
+ assert_nil config
50
+ assert_nil configs
51
+
52
+ # Test Depricated Config
53
+ options = {validate: true, stage: 'production', config: target_config}
54
+ RokuBuilder::ConfigValidator.stub(:validate_config, [-1]) do
55
+ code, config, configs = RokuBuilder::ConfigManager.load_config(options: options, logger: logger)
56
+ end
57
+ assert_equal RokuBuilder::DEPRICATED_CONFIG, code
58
+ assert_equal Hash, config.class
59
+ assert_equal Hash, configs.class
60
+
61
+ # Test valid Config
62
+ options = {validate: true, stage: 'production', config: target_config}
63
+ RokuBuilder::ConfigValidator.stub(:validate_config, [0]) do
64
+ code, config, configs = RokuBuilder::ConfigManager.load_config(options: options, logger: logger)
65
+ end
66
+ assert_equal RokuBuilder::SUCCESS, code
67
+ assert_equal Hash, config.class
68
+ assert_equal Hash, configs.class
69
+
70
+ # Test valid config in pwd
71
+ options = {validate: true, stage: 'production', config: target_config}
72
+ RokuBuilder::ConfigValidator.stub(:validate_config, [0]) do
73
+ RokuBuilder::Controller.stub(:system, "/dev/null/test") do
74
+ code, config, configs = RokuBuilder::ConfigManager.load_config(options: options, logger: logger)
75
+ end
76
+ end
77
+ assert_equal RokuBuilder::SUCCESS, code
78
+ assert_equal Hash, config.class
79
+ assert_equal Hash, configs.class
80
+
81
+ File.delete(target_config) if File.exist?(target_config)
82
+ end
83
+
19
84
  def test_config_manager_read_invalid_config
20
85
  logger = Logger.new("/dev/null")
21
86
  config_path = "config/file/path"
@@ -29,191 +94,14 @@ class ConfigManagerTest < Minitest::Test
29
94
  assert_nil config
30
95
  end
31
96
 
32
- def test_config_manager_validate_devices
33
- logger = Logger.new("/dev/null")
34
- config = good_config
35
- config[:devices] = nil
36
- codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
37
- assert_equal [1], codes
38
- end
39
-
40
- def test_config_manager_validate_devices_default
41
- logger = Logger.new("/dev/null")
42
- config = good_config
43
- config[:devices][:default] = nil
44
- codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
45
- assert_equal [2], codes
46
- end
47
-
48
- def test_config_manager_validate_devices_default_is_symbol
49
- logger = Logger.new("/dev/null")
50
- config = good_config
51
- config[:devices][:default] = "bad"
52
- codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
53
- assert_equal [3], codes
54
- end
55
-
56
- def test_config_manager_validate_device_ip
57
- logger = Logger.new("/dev/null")
58
- config = good_config
59
- config[:devices][:roku][:ip] = nil
60
- codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
61
- assert_equal [7], codes
62
- end
63
-
64
- def test_config_manager_validate_device_ip_empty
65
- logger = Logger.new("/dev/null")
66
- config = good_config
67
- config[:devices][:roku][:ip] = ""
68
- codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
69
- assert_equal [7], codes
70
- end
71
-
72
- def test_config_manager_validate_device_ip_default_value
73
- logger = Logger.new("/dev/null")
74
- config = good_config
75
- config[:devices][:roku][:ip] = "xxx.xxx.xxx.xxx"
76
- codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
77
- assert_equal [7], codes
78
- end
79
-
80
- def test_config_manager_validate_device_user
81
- logger = Logger.new("/dev/null")
82
- config = good_config
83
- config[:devices][:roku][:user] = nil
84
- codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
85
- assert_equal [8], codes
86
- end
87
-
88
- def test_config_manager_validate_device_user_empty
89
- logger = Logger.new("/dev/null")
90
- config = good_config
91
- config[:devices][:roku][:user] = ""
92
- codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
93
- assert_equal [8], codes
94
- end
95
-
96
- def test_config_manager_validate_device_user_default_value
97
- logger = Logger.new("/dev/null")
98
- config = good_config
99
- config[:devices][:roku][:user] = "<username>"
100
- codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
101
- assert_equal [8], codes
102
- end
103
-
104
- def test_config_manager_validate_device_password
105
- logger = Logger.new("/dev/null")
106
- config = good_config
107
- config[:devices][:roku][:password] = nil
108
- codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
109
- assert_equal [9], codes
110
- end
111
-
112
- def test_config_manager_validate_device_password_empty
113
- logger = Logger.new("/dev/null")
114
- config = good_config
115
- config[:devices][:roku][:password] = ""
116
- codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
117
- assert_equal [9], codes
118
- end
119
-
120
- def test_config_manager_validate_device_password_default_value
121
- logger = Logger.new("/dev/null")
122
- config = good_config
123
- config[:devices][:roku][:password] = "<password>"
124
- codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
125
- assert_equal [9], codes
126
- end
127
-
128
- def test_config_manager_validate_projects
129
- logger = Logger.new("/dev/null")
130
- config = good_config
131
- config[:projects] = nil
132
- codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
133
- assert_equal [4], codes
134
- end
135
-
136
- def test_config_manager_validate_projects_default
137
- logger = Logger.new("/dev/null")
138
- config = good_config
139
- config[:projects][:default] = nil
140
- codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
141
- assert_equal [5], codes
142
- end
143
-
144
- def test_config_manager_validate_projects_default_default_value
145
- logger = Logger.new("/dev/null")
146
- config = good_config
147
- config[:projects][:default] = "<project id>".to_sym
148
- codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
149
- assert_equal [5], codes
150
- end
151
-
152
- def test_config_manager_validate_projects_default_is_symbol
153
- logger = Logger.new("/dev/null")
154
- config = good_config
155
- config[:projects][:default] = "project_id"
156
- codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
157
- assert_equal [6], codes
158
- end
159
-
160
- def test_config_manager_validate_project_app_name
161
- logger = Logger.new("/dev/null")
162
- config = good_config
163
- config[:projects][:project1][:app_name] = nil
164
- codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
165
- assert_equal [10], codes
166
- end
167
-
168
- def test_config_manager_validate_project_directory
169
- logger = Logger.new("/dev/null")
170
- config = good_config
171
- config[:projects][:project1][:directory] = nil
172
- codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
173
- assert_equal [11], codes
174
- end
175
-
176
- def test_config_manager_validate_project_folders
177
- logger = Logger.new("/dev/null")
178
- config = good_config
179
- config[:projects][:project1][:folders] = nil
180
- codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
181
- assert_equal [12], codes
182
- end
183
-
184
- def test_config_manager_validate_project_folders_is_array
185
- logger = Logger.new("/dev/null")
186
- config = good_config
187
- config[:projects][:project1][:folders] = "Folders"
188
- codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
189
- assert_equal [13], codes
190
- end
191
-
192
- def test_config_manager_validate_project_files
193
- logger = Logger.new("/dev/null")
194
- config = good_config
195
- config[:projects][:project1][:files] = nil
196
- codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
197
- assert_equal [14], codes
198
- end
199
-
200
- def test_config_manager_validate_project_filess_is_array
201
- logger = Logger.new("/dev/null")
202
- config = good_config
203
- config[:projects][:project1][:files] = "Files"
204
- codes = RokuBuilder::ConfigManager.validate_config(config: config, logger: logger)
205
- assert_equal [15], codes
206
- end
207
-
208
97
  def test_config_manager_edit_ip
209
98
  logger = Logger.new("/dev/null")
210
99
  config_path = "config/file/path"
211
100
  args = {
212
101
  config: config_path,
213
- options: "ip:192.168.0.200",
214
- device: :roku,
215
- project: nil,
216
- stage: nil,
102
+ options: {edit_params: "ip:192.168.0.200",
103
+ device: :roku,
104
+ },
217
105
  logger: logger
218
106
  }
219
107
  new_config = good_config
@@ -223,7 +111,6 @@ class ConfigManagerTest < Minitest::Test
223
111
  io.expect(:read, good_config.to_json)
224
112
  io.expect(:write, nil, [JSON.pretty_generate(new_config)])
225
113
  io.expect(:close, nil)
226
- config = nil
227
114
  File.stub(:open, io) do
228
115
  RokuBuilder::ConfigManager.edit_config(**args)
229
116
  end
@@ -235,10 +122,7 @@ class ConfigManagerTest < Minitest::Test
235
122
  config_path = "config/file/path"
236
123
  args = {
237
124
  config: config_path,
238
- options: "user:new_user",
239
- device: "roku",
240
- project: nil,
241
- stage: nil,
125
+ options: {edit_params: "user:new_user"},
242
126
  logger: logger
243
127
  }
244
128
  new_config = good_config
@@ -248,7 +132,6 @@ class ConfigManagerTest < Minitest::Test
248
132
  io.expect(:read, good_config.to_json)
249
133
  io.expect(:write, nil, [JSON.pretty_generate(new_config)])
250
134
  io.expect(:close, nil)
251
- config = nil
252
135
  File.stub(:open, io) do
253
136
  RokuBuilder::ConfigManager.edit_config(**args)
254
137
  end
@@ -260,10 +143,7 @@ class ConfigManagerTest < Minitest::Test
260
143
  config_path = "config/file/path"
261
144
  args = {
262
145
  config: config_path,
263
- options: "password:new_password",
264
- device: nil,
265
- project: nil,
266
- stage: nil,
146
+ options: {edit_params: "password:new_password"},
267
147
  logger: logger
268
148
  }
269
149
  new_config = good_config
@@ -273,7 +153,6 @@ class ConfigManagerTest < Minitest::Test
273
153
  io.expect(:read, good_config.to_json)
274
154
  io.expect(:write, nil, [JSON.pretty_generate(new_config)])
275
155
  io.expect(:close, nil)
276
- config = nil
277
156
  File.stub(:open, io) do
278
157
  RokuBuilder::ConfigManager.edit_config(**args)
279
158
  end
@@ -285,10 +164,9 @@ class ConfigManagerTest < Minitest::Test
285
164
  config_path = "config/file/path"
286
165
  args = {
287
166
  config: config_path,
288
- options: "app_name:new name",
289
- device: nil,
290
- project: :project1,
291
- stage: nil,
167
+ options: {edit_params: "app_name:new name",
168
+ project: :project1
169
+ },
292
170
  logger: logger
293
171
  }
294
172
  new_config = good_config
@@ -298,7 +176,6 @@ class ConfigManagerTest < Minitest::Test
298
176
  io.expect(:read, good_config.to_json)
299
177
  io.expect(:write, nil, [JSON.pretty_generate(new_config)])
300
178
  io.expect(:close, nil)
301
- config = nil
302
179
  File.stub(:open, io) do
303
180
  RokuBuilder::ConfigManager.edit_config(**args)
304
181
  end
@@ -310,10 +187,9 @@ class ConfigManagerTest < Minitest::Test
310
187
  config_path = "config/file/path"
311
188
  args = {
312
189
  config: config_path,
313
- options: "directory:new/directory/path",
314
- device: nil,
315
- project: "project1",
316
- stage: nil,
190
+ options: {edit_params: "directory:new/directory/path",
191
+ project: :project1
192
+ },
317
193
  logger: logger
318
194
  }
319
195
  new_config = good_config
@@ -323,7 +199,6 @@ class ConfigManagerTest < Minitest::Test
323
199
  io.expect(:read, good_config.to_json)
324
200
  io.expect(:write, nil, [JSON.pretty_generate(new_config)])
325
201
  io.expect(:close, nil)
326
- config = nil
327
202
  File.stub(:open, io) do
328
203
  RokuBuilder::ConfigManager.edit_config(**args)
329
204
  end
@@ -335,10 +210,9 @@ class ConfigManagerTest < Minitest::Test
335
210
  config_path = "config/file/path"
336
211
  args = {
337
212
  config: config_path,
338
- options: "branch:new-branch",
339
- device: nil,
340
- project: nil,
341
- stage: :production,
213
+ options: {edit_params: "branch:new-branch",
214
+ stage: :production
215
+ },
342
216
  logger: logger
343
217
  }
344
218
  new_config = good_config
@@ -348,7 +222,6 @@ class ConfigManagerTest < Minitest::Test
348
222
  io.expect(:read, good_config.to_json)
349
223
  io.expect(:write, nil, [JSON.pretty_generate(new_config)])
350
224
  io.expect(:close, nil)
351
- config = nil
352
225
  File.stub(:open, io) do
353
226
  RokuBuilder::ConfigManager.edit_config(**args)
354
227
  end
@@ -360,10 +233,7 @@ class ConfigManagerTest < Minitest::Test
360
233
  config_path = "config/file/path"
361
234
  args = {
362
235
  config: config_path,
363
- options: "branch:new-branch",
364
- device: nil,
365
- project: nil,
366
- stage: nil,
236
+ options: {edit_params: "branch:new-branch"},
367
237
  logger: logger
368
238
  }
369
239
  new_config = good_config
@@ -373,41 +243,10 @@ class ConfigManagerTest < Minitest::Test
373
243
  io.expect(:read, good_config.to_json)
374
244
  io.expect(:write, nil, [JSON.pretty_generate(new_config)])
375
245
  io.expect(:close, nil)
376
- config = nil
377
246
  File.stub(:open, io) do
378
247
  RokuBuilder::ConfigManager.edit_config(**args)
379
248
  end
380
249
  io.verify
381
250
  end
382
251
 
383
- def good_config
384
- {
385
- devices: {
386
- default: :roku,
387
- roku: {
388
- ip: "192.168.0.100",
389
- user: "user",
390
- password: "password"
391
- }
392
- },
393
- projects: {
394
- default: :project1,
395
- project1: {
396
- directory: "<path/to/repo>",
397
- folders: ["resources","source"],
398
- files: ["manifest"],
399
- app_name: "<app name>",
400
- stages:{
401
- production: {
402
- branch: "production",
403
- key: {
404
- keyed_pkg: "<path/to/signed/pkg>",
405
- password: "<password for pkg>"
406
- }
407
- }
408
- }
409
- }
410
- }
411
- }
412
- end
413
252
  end
@@ -1,6 +1,6 @@
1
1
  require_relative "test_helper.rb"
2
2
 
3
- class ControllerConfigTest < Minitest::Test
3
+ class ConfigParserTest < Minitest::Test
4
4
  def test_manifest_config
5
5
  logger = Logger.new("/dev/null")
6
6
  options = {
@@ -9,11 +9,11 @@ class ControllerConfigTest < Minitest::Test
9
9
  update_manifest: false,
10
10
  fetch: false,
11
11
  }
12
- code, config, configs = RokuBuilder::Controller.load_config(options: options, logger: logger)
12
+ config = good_config
13
+ code, configs = RokuBuilder::ConfigParser.parse_config(options: options, config: config, logger: logger)
13
14
 
15
+ assert_equal RokuBuilder::SUCCESS, code
16
+ assert_equal Hash, config.class
14
17
  assert_equal "/dev/null", configs[:manifest_config][:root_dir]
15
- assert_equal logger, configs[:manifest_config][:logger]
16
-
17
-
18
18
  end
19
19
  end