roku_builder 3.3.3 → 3.3.4

Sign up to get free protection for your applications and to get access to all the features.
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