MuranoCLI 3.2.0.beta.9 → 3.2.1.pre.beta.3

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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +3 -0
  3. data/Rakefile +5 -0
  4. data/dockers/README.rst +7 -0
  5. data/dockers/RELEASE.rst +6 -3
  6. data/dockers/docker-test.sh +45 -17
  7. data/docs/completions/murano_completion-bash +211 -86
  8. data/lib/MrMurano/Account.rb +72 -4
  9. data/lib/MrMurano/Business.rb +163 -2
  10. data/lib/MrMurano/Commander-Entry.rb +1 -2
  11. data/lib/MrMurano/Config.rb +19 -18
  12. data/lib/MrMurano/Content.rb +26 -19
  13. data/lib/MrMurano/Gateway.rb +51 -10
  14. data/lib/MrMurano/ReCommander.rb +1 -1
  15. data/lib/MrMurano/Solution-Services.rb +80 -35
  16. data/lib/MrMurano/Solution-Users.rb +1 -0
  17. data/lib/MrMurano/SyncRoot.rb +10 -3
  18. data/lib/MrMurano/SyncUpDown-Core.rb +47 -36
  19. data/lib/MrMurano/SyncUpDown-Item.rb +46 -14
  20. data/lib/MrMurano/SyncUpDown.rb +22 -20
  21. data/lib/MrMurano/Webservice-Endpoint.rb +20 -18
  22. data/lib/MrMurano/Webservice-File.rb +63 -20
  23. data/lib/MrMurano/commands/business.rb +14 -1
  24. data/lib/MrMurano/commands/child.rb +148 -0
  25. data/lib/MrMurano/commands/devices.rb +298 -149
  26. data/lib/MrMurano/commands/element.rb +2 -1
  27. data/lib/MrMurano/commands/globals.rb +3 -0
  28. data/lib/MrMurano/commands/network.rb +152 -33
  29. data/lib/MrMurano/commands/sync.rb +2 -2
  30. data/lib/MrMurano/commands.rb +1 -0
  31. data/lib/MrMurano/verbosing.rb +13 -2
  32. data/lib/MrMurano/version.rb +1 -1
  33. data/spec/Account_spec.rb +43 -11
  34. data/spec/Content_spec.rb +5 -3
  35. data/spec/GatewayBase_spec.rb +1 -1
  36. data/spec/GatewayDevice_spec.rb +47 -8
  37. data/spec/GatewayResource_spec.rb +1 -1
  38. data/spec/GatewaySettings_spec.rb +1 -1
  39. data/spec/HttpAuthed_spec.rb +17 -3
  40. data/spec/ProjectFile_spec.rb +59 -23
  41. data/spec/Setting_spec.rb +2 -1
  42. data/spec/Solution-ServiceConfig_spec.rb +1 -1
  43. data/spec/Solution-ServiceEventHandler_spec.rb +27 -20
  44. data/spec/Solution-ServiceModules_spec.rb +7 -5
  45. data/spec/Solution-UsersRoles_spec.rb +7 -1
  46. data/spec/Solution_spec.rb +9 -1
  47. data/spec/SyncRoot_spec.rb +5 -5
  48. data/spec/SyncUpDown_spec.rb +262 -211
  49. data/spec/Verbosing_spec.rb +49 -8
  50. data/spec/Webservice-Cors_spec.rb +10 -1
  51. data/spec/Webservice-Endpoint_spec.rb +84 -65
  52. data/spec/Webservice-File_spec.rb +16 -11
  53. data/spec/Webservice-Setting_spec.rb +7 -1
  54. data/spec/_workspace.rb +9 -0
  55. data/spec/cmd_business_spec.rb +5 -10
  56. data/spec/cmd_common.rb +67 -32
  57. data/spec/cmd_config_spec.rb +9 -14
  58. data/spec/cmd_content_spec.rb +15 -26
  59. data/spec/cmd_cors_spec.rb +9 -12
  60. data/spec/cmd_device_spec.rb +31 -45
  61. data/spec/cmd_domain_spec.rb +12 -10
  62. data/spec/cmd_element_spec.rb +18 -17
  63. data/spec/cmd_exchange_spec.rb +1 -4
  64. data/spec/cmd_init_spec.rb +56 -72
  65. data/spec/cmd_keystore_spec.rb +17 -26
  66. data/spec/cmd_link_spec.rb +13 -17
  67. data/spec/cmd_password_spec.rb +9 -10
  68. data/spec/cmd_setting_application_spec.rb +95 -68
  69. data/spec/cmd_setting_product_spec.rb +59 -37
  70. data/spec/cmd_status_spec.rb +46 -84
  71. data/spec/cmd_syncdown_application_spec.rb +28 -50
  72. data/spec/cmd_syncdown_both_spec.rb +44 -93
  73. data/spec/cmd_syncdown_unit_spec.rb +858 -0
  74. data/spec/cmd_syncup_spec.rb +21 -56
  75. data/spec/cmd_token_spec.rb +0 -3
  76. data/spec/cmd_usage_spec.rb +15 -10
  77. data/spec/dry_run_formatter.rb +1 -0
  78. data/spec/fixtures/dumped_config +4 -4
  79. data/spec/spec_helper.rb +3 -0
  80. metadata +4 -2
@@ -16,8 +16,8 @@ require 'HttpAuthed_spec'
16
16
 
17
17
  RSpec.describe MrMurano::ServiceConfig do
18
18
  include_context 'WORKSPACE'
19
+
19
20
  before(:example) do
20
- MrMurano::SyncRoot.instance.reset
21
21
  $cfg = MrMurano::Config.new
22
22
  $cfg.load
23
23
  $project = MrMurano::ProjectFile.new
@@ -75,6 +75,7 @@ RSpec.describe MrMurano::EventHandler do
75
75
  event: 'datapoint',
76
76
  created_at: '2016-07-07T19:16:19.479Z',
77
77
  updated_at: '2016-09-12T13:26:55.868Z',
78
+ header: '--#EVENT device datapoint',
78
79
  script: %{--#EVENT device datapoint
79
80
  -- lua code is here
80
81
  function foo(bar)
@@ -330,7 +331,7 @@ end
330
331
  end
331
332
  end
332
333
 
333
- context 'to_remote_item' do
334
+ context 'to_remote_items' do
334
335
  before(:example) do
335
336
  allow(@srv).to receive(:warning)
336
337
  end
@@ -343,17 +344,21 @@ end
343
344
  ).gsub(/^\s+/, '')
344
345
  tio.close
345
346
 
346
- ret = @srv.to_remote_item(nil, tio.path)
347
- expect(ret).to eq(
348
- service: 'device',
349
- event: 'datapoint',
350
- svc_alias: nil,
351
- type: nil,
352
- line_beg: 0,
353
- line_end: 3,
354
- local_path: Pathname.new(tio.path),
355
- script: %(--#EVENT device datapoint\n-- do something.\nTsdb.write{tags={sn='1'},metrics={[data.alias]=data.value[2]}}\n)
356
- )
347
+ want = [
348
+ {
349
+ service: 'device',
350
+ event: 'datapoint',
351
+ svc_alias: nil,
352
+ type: nil,
353
+ line_beg: 1,
354
+ line_end: 3,
355
+ local_path: Pathname.new(tio.path),
356
+ header: %(--#EVENT device datapoint),
357
+ script: %(-- do something.\nTsdb.write{tags={sn='1'},metrics={[data.alias]=data.value[2]}}\n),
358
+ },
359
+ ]
360
+ ret = @srv.to_remote_items(nil, tio.path)
361
+ expect(ret).to eq(want)
357
362
  end
358
363
  end
359
364
 
@@ -365,8 +370,8 @@ end
365
370
  ).gsub(/^\s+/, '')
366
371
  tio.close
367
372
 
368
- ret = @srv.to_remote_item(nil, tio.path)
369
- expect(ret).to eq(nil)
373
+ ret = @srv.to_remote_items(nil, tio.path)
374
+ expect(ret).to eq([])
370
375
  end
371
376
  end
372
377
 
@@ -379,19 +384,21 @@ end
379
384
  ).gsub(/^\s+/, '')
380
385
  tio.close
381
386
 
382
- ret = @srv.to_remote_item(nil, tio.path)
383
- expect(ret).to eq(
387
+ want = [
384
388
  MrMurano::EventHandler::EventHandlerItem.new(
385
389
  service: 'device',
386
390
  event: 'datapoint',
387
391
  svc_alias: nil,
388
392
  type: nil,
389
- line_beg: 1,
393
+ line_beg: 2, # Skips the "-- do something." line, before --#EVENT.
390
394
  line_end: 3,
391
395
  local_path: Pathname.new(tio.path),
392
- script: %(--#EVENT device datapoint\nTsdb.write{tags={sn='1'},metrics={[data.alias]=data.value[2]}}\n),
393
- )
394
- )
396
+ header: %(--#EVENT device datapoint),
397
+ script: %(Tsdb.write{tags={sn='1'},metrics={[data.alias]=data.value[2]}}\n),
398
+ ),
399
+ ]
400
+ ret = @srv.to_remote_items(nil, tio.path)
401
+ expect(ret).to eq(want)
395
402
  end
396
403
  end
397
404
  end
@@ -542,18 +542,20 @@ RSpec.describe MrMurano::Module do
542
542
  end
543
543
  end
544
544
 
545
- context 'to_remote_item' do
545
+ context 'to_remote_items' do
546
546
  it 'reads one' do
547
547
  root = Pathname.new(@project_dir)
548
548
  path = Pathname.new(@project_dir) + 'test.lua'
549
- ret = @srv.to_remote_item(root, path)
550
- expect(ret).to eq(name: 'test')
549
+ want = [{ name: 'test' }]
550
+ ret = @srv.to_remote_items(root, path)
551
+ expect(ret).to eq(want)
551
552
  end
552
553
  it 'reads sub folder one' do
553
554
  root = Pathname.new(@project_dir)
554
555
  path = Pathname.new(@project_dir) + 'src/test.lua'
555
- ret = @srv.to_remote_item(root, path)
556
- expect(ret).to eq(name: 'src.test')
556
+ ret = @srv.to_remote_items(root, path)
557
+ want = [{ name: 'src.test' }]
558
+ expect(ret).to eq(want)
557
559
  end
558
560
  end
559
561
  end
@@ -7,6 +7,8 @@
7
7
 
8
8
  require 'pathname'
9
9
  require 'tempfile'
10
+ require 'webmock'
11
+
10
12
  require 'MrMurano/hash'
11
13
  require 'MrMurano/version'
12
14
  require 'MrMurano/HttpAuthed'
@@ -17,8 +19,8 @@ require 'HttpAuthed_spec'
17
19
 
18
20
  RSpec.describe MrMurano::Role do
19
21
  include_context 'WORKSPACE'
22
+
20
23
  before(:example) do
21
- MrMurano::SyncRoot.instance.reset
22
24
  $cfg = MrMurano::Config.new
23
25
  $cfg.load
24
26
  $cfg['net.host'] = 'bizapi.hosted.exosite.io'
@@ -29,6 +31,10 @@ RSpec.describe MrMurano::Role do
29
31
  MrMurano::HttpAuthed.instance.instance_variable_set(:@token_biz, 'TTTTTTTTTT')
30
32
  end
31
33
 
34
+ after(:example) do
35
+ WebMock.reset!
36
+ end
37
+
32
38
  it 'initializes' do
33
39
  uri = @srv.endpoint('/')
34
40
  expect(uri.to_s).to eq(
@@ -6,7 +6,9 @@
6
6
  # Unauthorized copying of this file is strictly prohibited.
7
7
 
8
8
  require 'tempfile'
9
+ require 'webmock'
9
10
  require 'yaml'
11
+
10
12
  require 'MrMurano/version'
11
13
  require 'MrMurano/HttpAuthed'
12
14
  require 'MrMurano/ProjectFile'
@@ -17,15 +19,17 @@ require 'HttpAuthed_spec'
17
19
 
18
20
  RSpec.describe MrMurano::Solution do
19
21
  include_context 'WORKSPACE'
22
+
20
23
  before(:example) do
21
- MrMurano::SyncRoot.instance.reset
22
24
  $cfg = MrMurano::Config.new
23
25
  $cfg.load
26
+
24
27
  $project = MrMurano::ProjectFile.new
25
28
  $project.load
26
29
  $cfg['net.host'] = 'bizapi.hosted.exosite.io'
27
30
  $cfg['product.id'] = 'XYZ'
28
31
  $cfg['application.id'] = 'XYZ'
32
+
29
33
  stub_request_email_password
30
34
 
31
35
  # NOTE: This test works on either Product or Application.
@@ -36,6 +40,10 @@ RSpec.describe MrMurano::Solution do
36
40
  MrMurano::HttpAuthed.instance.instance_variable_set(:@token_biz, 'TTTTTTTTTT')
37
41
  end
38
42
 
43
+ after(:example) do
44
+ WebMock.reset!
45
+ end
46
+
39
47
  it 'initializes' do
40
48
  uri = @srv.endpoint('/')
41
49
  expect(uri.to_s).to eq(
@@ -15,12 +15,8 @@ require '_workspace'
15
15
  RSpec.describe MrMurano::SyncRoot do
16
16
  include_context 'WORKSPACE'
17
17
 
18
- after(:example) do
19
- MrMurano::SyncRoot.instance.reset
20
- end
21
-
22
18
  before(:example) do
23
- MrMurano::SyncRoot.instance.reset # also creates @@syncset
19
+ @syncsetypes = MrMurano::SyncRoot.instance.reset # also creates @@syncset
24
20
  # Weird/2017-07-31: I [lb] must[ve changed something, because this
25
21
  # block being called twice, which is generating a warning:
26
22
  # /exo/clients/exosite/MuranoCLIs/MuranoCLI+landonb/spec/SyncRoot_spec.rb:30:
@@ -60,6 +56,10 @@ RSpec.describe MrMurano::SyncRoot do
60
56
  end
61
57
  end
62
58
 
59
+ after(:example) do
60
+ MrMurano::SyncRoot.instance.reset(@syncsetypes)
61
+ end
62
+
63
63
  it 'has defaults' do
64
64
  ret = MrMurano::SyncRoot.instance.bydefault
65
65
  expect(ret).to eq(['user'])
@@ -11,7 +11,9 @@ require 'MrMurano/version'
11
11
  require 'MrMurano/Config'
12
12
  require 'MrMurano/ProjectFile'
13
13
  require 'MrMurano/SyncRoot'
14
+ require 'MrMurano/Solution-Services'
14
15
  require 'MrMurano/SyncUpDown'
16
+ require 'MrMurano/SyncUpDown-Item'
15
17
  require '_workspace'
16
18
 
17
19
  class TSUD
@@ -35,6 +37,7 @@ class TSUD
35
37
  end
36
38
 
37
39
  def fetch(id, _untainted=false)
40
+ # pass
38
41
  end
39
42
 
40
43
  def self.description
@@ -50,10 +53,27 @@ end
50
53
 
51
54
  ITEM_UPDATED_AT = '2017-06-24T00:45:15.564Z'
52
55
 
56
+ def expect_status_match_arrs(ret_arr, want_arr)
57
+ ret_arr.each_with_index do |ret_item, index|
58
+ want_item = want_arr[index]
59
+ ret_item.each_pair do |key, val|
60
+ expect(val).to match(want_item[key])
61
+ end
62
+ end
63
+ end
64
+
65
+ def expect_status_match_lkup(ret, want)
66
+ # Need to tediously iterate, else Item object ID and local_path are flagged.
67
+ (ret.keys + want.keys).to_set.each do |category|
68
+ expect(ret[category].length).to eq(want[category].length)
69
+ expect_status_match_arrs(ret[category], want[category])
70
+ end
71
+ end
72
+
53
73
  RSpec.describe MrMurano::SyncUpDown do
54
74
  include_context 'WORKSPACE'
75
+
55
76
  before(:example) do
56
- MrMurano::SyncRoot.instance.reset
57
77
  $cfg = MrMurano::Config.new
58
78
  $cfg.load
59
79
  $project = MrMurano::ProjectFile.new
@@ -67,9 +87,9 @@ RSpec.describe MrMurano::SyncUpDown do
67
87
 
68
88
  context 'status' do
69
89
  it 'warns with missing directory' do
70
- t = TSUD.new
71
- expect(t).to receive(:warning).once.with(/Skipping missing location.*/)
72
- ret = t.status
90
+ tsud = TSUD.new
91
+ expect(tsud).to receive(:warning).once.with(/Skipping missing location.*/)
92
+ ret = tsud.status
73
93
  expect(ret).to eq(
74
94
  toadd: [], todel: [], tomod: [], unchg: [], skipd: [], clash: []
75
95
  )
@@ -77,8 +97,8 @@ RSpec.describe MrMurano::SyncUpDown do
77
97
 
78
98
  it 'finds nothing in empty directory' do
79
99
  FileUtils.mkpath(@project_dir + '/tsud')
80
- t = TSUD.new
81
- ret = t.status
100
+ tsud = TSUD.new
101
+ ret = tsud.status
82
102
  expect(ret).to eq(
83
103
  toadd: [], todel: [], tomod: [], unchg: [], skipd: [], clash: []
84
104
  )
@@ -86,205 +106,218 @@ RSpec.describe MrMurano::SyncUpDown do
86
106
 
87
107
  it 'finds things there but not here' do
88
108
  FileUtils.mkpath(@project_dir + '/tsud')
89
- t = TSUD.new
90
- expect(t).to receive(:list).once.and_return(
109
+ tsud = TSUD.new
110
+ expect(tsud).to receive(:list).once.and_return(
91
111
  [
92
- { name: 1 },
93
- { name: 2 },
94
- { name: 3 },
112
+ MrMurano::SyncUpDown::Item.new(name: 1),
113
+ MrMurano::SyncUpDown::Item.new(name: 2),
114
+ MrMurano::SyncUpDown::Item.new(name: 3),
95
115
  ]
96
116
  )
97
- ret = t.status
98
- expect(ret).to eq(
117
+ want = {
99
118
  toadd: [],
100
119
  todel: [
101
- {
120
+ MrMurano::SyncUpDown::Item.new(
102
121
  name: 1,
103
122
  synckey: 1,
104
123
  synctype: TSUD.description,
105
- },
106
- {
124
+ ),
125
+ MrMurano::SyncUpDown::Item.new(
107
126
  name: 2,
108
127
  synckey: 2,
109
128
  synctype: TSUD.description,
110
- },
111
- {
129
+ ),
130
+ MrMurano::SyncUpDown::Item.new(
112
131
  name: 3,
113
132
  synckey: 3,
114
133
  synctype: TSUD.description,
115
- },
134
+ ),
116
135
  ],
117
136
  tomod: [],
118
137
  unchg: [],
119
138
  skipd: [],
120
- clash: []
121
- )
139
+ clash: [],
140
+ }
141
+ ret = tsud.status
142
+ expect_status_match_lkup(ret, want)
122
143
  end
123
144
 
124
145
  it 'finds things there but not here; asdown' do
125
146
  FileUtils.mkpath(@project_dir + '/tsud')
126
- t = TSUD.new
127
- expect(t).to receive(:list).once.and_return(
147
+ tsud = TSUD.new
148
+ expect(tsud).to receive(:list).once.and_return(
128
149
  [
129
- { name: 1 },
130
- { name: 2 },
131
- { name: 3 },
150
+ MrMurano::SyncUpDown::Item.new(name: 1),
151
+ MrMurano::SyncUpDown::Item.new(name: 2),
152
+ MrMurano::SyncUpDown::Item.new(name: 3),
132
153
  ]
133
154
  )
134
- ret = t.status(asdown: true)
135
- expect(ret).to eq(
155
+ want = {
136
156
  todel: [],
137
157
  toadd: [
138
- { name: 1, synckey: 1, synctype: TSUD.description },
139
- { name: 2, synckey: 2, synctype: TSUD.description },
140
- { name: 3, synckey: 3, synctype: TSUD.description },
158
+ MrMurano::SyncUpDown::Item.new(
159
+ name: 1, synckey: 1, synctype: TSUD.description,
160
+ ),
161
+ MrMurano::SyncUpDown::Item.new(
162
+ name: 2, synckey: 2, synctype: TSUD.description,
163
+ ),
164
+ MrMurano::SyncUpDown::Item.new(
165
+ name: 3, synckey: 3, synctype: TSUD.description,
166
+ ),
141
167
  ],
142
168
  tomod: [],
143
169
  unchg: [],
144
170
  skipd: [],
145
- clash: []
146
- )
171
+ clash: [],
172
+ }
173
+ ret = tsud.status(asdown: true)
174
+ expect_status_match_lkup(ret, want)
147
175
  end
148
176
 
149
177
  it 'finds things here but not there' do
150
178
  FileUtils.mkpath(@project_dir + '/tsud')
151
179
  FileUtils.touch(@project_dir + '/tsud/one.lua')
152
180
  FileUtils.touch(@project_dir + '/tsud/two.lua')
153
- t = TSUD.new
154
- expect(t).to receive(:to_remote_item).and_return(
155
- { name: 'one.lua' },
156
- name: 'two.lua',
181
+ tsud = TSUD.new
182
+ expect(tsud).to receive(:to_remote_items).and_return(
183
+ [MrMurano::SyncUpDown::Item.new(name: 'one.lua')],
184
+ [MrMurano::SyncUpDown::Item.new(name: 'two.lua')],
157
185
  )
158
- ret = t.status
159
- expect(ret).to match(
186
+ want = {
160
187
  toadd: [
161
- {
188
+ MrMurano::SyncUpDown::Item.new(
162
189
  name: 'one.lua',
163
190
  synckey: 'one.lua',
164
191
  synctype: TSUD.description,
165
192
  local_path: an_instance_of(Pathname),
166
- },
167
- {
193
+ ),
194
+ MrMurano::SyncUpDown::Item.new(
168
195
  name: 'two.lua',
169
196
  synckey: 'two.lua',
170
197
  synctype: TSUD.description,
171
198
  local_path: an_instance_of(Pathname),
172
- },
199
+ ),
173
200
  ],
174
201
  todel: [],
175
202
  tomod: [],
176
203
  unchg: [],
177
204
  skipd: [],
178
- clash: []
179
- )
205
+ clash: [],
206
+ }
207
+ ret = tsud.status
208
+ expect_status_match_lkup(ret, want)
180
209
  end
181
210
 
182
- it 'finds things here and there' do
211
+ it 'finds things here and there; and they are different' do
183
212
  FileUtils.mkpath(@project_dir + '/tsud')
184
213
  FileUtils.touch(@project_dir + '/tsud/one.lua')
185
214
  FileUtils.touch(@project_dir + '/tsud/two.lua')
186
- t = TSUD.new
187
- expect(t).to receive(:list).once.and_return(
215
+ tsud = TSUD.new
216
+ expect(tsud).to receive(:list).once.and_return(
188
217
  [
189
- { name: 'one.lua' },
190
- { name: 'two.lua' },
218
+ MrMurano::EventHandler::EventHandlerItem.new(name: 'one.lua'),
219
+ MrMurano::EventHandler::EventHandlerItem.new(name: 'two.lua'),
191
220
  ]
192
221
  )
193
- expect(t).to receive(:to_remote_item).and_return(
194
- { name: 'one.lua' },
195
- name: 'two.lua',
222
+ expect(tsud).to receive(:to_remote_items).and_return(
223
+ [MrMurano::EventHandler::EventHandlerItem.new(name: 'one.lua')],
224
+ [MrMurano::EventHandler::EventHandlerItem.new(name: 'two.lua')],
196
225
  )
197
- ret = t.status
198
- expect(ret).to match(
226
+ want = {
199
227
  tomod: [
200
- {
228
+ MrMurano::EventHandler::EventHandlerItem.new(
201
229
  name: 'one.lua',
202
230
  synckey: 'one.lua',
203
231
  synctype: TSUD.description,
204
232
  local_path: an_instance_of(Pathname),
205
- },
206
- {
233
+ ),
234
+ MrMurano::EventHandler::EventHandlerItem.new(
207
235
  name: 'two.lua',
208
236
  synckey: 'two.lua',
209
237
  synctype: TSUD.description,
210
238
  local_path: an_instance_of(Pathname),
211
- },
239
+ ),
212
240
  ],
213
241
  todel: [],
214
242
  toadd: [],
215
243
  unchg: [],
216
244
  skipd: [],
217
- clash: []
218
- )
245
+ clash: [],
246
+ }
247
+ ret = tsud.status
248
+ expect_status_match_lkup(ret, want)
219
249
  end
250
+
220
251
  it "finds things here and there; but they're the same" do
221
252
  FileUtils.mkpath(@project_dir + '/tsud')
222
253
  FileUtils.touch(@project_dir + '/tsud/one.lua')
223
254
  FileUtils.touch(@project_dir + '/tsud/two.lua')
224
- t = TSUD.new
225
- expect(t).to receive(:list).once.and_return(
255
+ tsud = TSUD.new
256
+ expect(tsud).to receive(:list).once.and_return(
226
257
  [
227
- { name: 'one.lua' },
228
- { name: 'two.lua' },
258
+ MrMurano::SyncUpDown::Item.new(name: 'one.lua'),
259
+ MrMurano::SyncUpDown::Item.new(name: 'two.lua'),
229
260
  ]
230
261
  )
231
- expect(t).to receive(:to_remote_item).and_return(
232
- { name: 'one.lua' },
233
- name: 'two.lua',
262
+ expect(tsud).to receive(:to_remote_items).and_return(
263
+ [MrMurano::SyncUpDown::Item.new(name: 'one.lua')],
264
+ [MrMurano::SyncUpDown::Item.new(name: 'two.lua')],
234
265
  )
235
- expect(t).to receive(:docmp).twice.and_return(false)
236
- ret = t.status
237
- expect(ret).to match(
266
+ expect(tsud).to receive(:docmp).twice.and_return(false)
267
+ want = {
238
268
  unchg: [
239
- {
269
+ MrMurano::SyncUpDown::Item.new(
240
270
  name: 'one.lua',
241
271
  synckey: 'one.lua',
242
272
  synctype: TSUD.description,
243
273
  local_path: an_instance_of(Pathname),
244
- },
245
- {
274
+ ),
275
+ MrMurano::SyncUpDown::Item.new(
246
276
  name: 'two.lua',
247
277
  synckey: 'two.lua',
248
278
  synctype: TSUD.description,
249
279
  local_path: an_instance_of(Pathname),
250
- },
280
+ ),
251
281
  ],
252
282
  todel: [],
253
283
  toadd: [],
254
284
  tomod: [],
255
285
  skipd: [],
256
- clash: []
257
- )
286
+ clash: [],
287
+ }
288
+ ret = tsud.status
289
+ expect_status_match_lkup(ret, want)
258
290
  end
259
291
 
260
292
  it 'calls diff' do
261
293
  FileUtils.mkpath(@project_dir + '/tsud')
262
294
  FileUtils.touch(@project_dir + '/tsud/one.lua')
263
- t = TSUD.new
264
- expect(t).to receive(:list).once.and_return([
265
- { name: 'one.lua' },
266
- ])
267
- expect(t).to receive(:to_remote_item).and_return(
268
- name: 'one.lua'
295
+ tsud = TSUD.new
296
+ expect(tsud).to receive(:list).once.and_return(
297
+ [MrMurano::SyncUpDown::Item.new(name: 'one.lua')],
269
298
  )
270
- expect(t).to receive(:dodiff).once.and_return('diffed output')
271
- ret = t.status(diff: true)
272
- expect(ret).to match(
299
+ expect(tsud).to receive(:to_remote_items).and_return(
300
+ [MrMurano::SyncUpDown::Item.new(name: 'one.lua')]
301
+ )
302
+ expect(tsud).to receive(:dodiff).once.and_return('diffed output')
303
+ want = {
273
304
  tomod: [
274
- {
305
+ MrMurano::SyncUpDown::Item.new(
275
306
  name: 'one.lua',
276
307
  synckey: 'one.lua',
277
308
  synctype: TSUD.description,
278
309
  local_path: an_instance_of(Pathname),
279
310
  diff: 'diffed output',
280
- },
311
+ ),
281
312
  ],
282
313
  todel: [],
283
314
  toadd: [],
284
315
  unchg: [],
285
316
  skipd: [],
286
- clash: []
287
- )
317
+ clash: [],
318
+ }
319
+ ret = tsud.status(diff: true)
320
+ expect_status_match_lkup(ret, want)
288
321
  end
289
322
 
290
323
  context 'Filtering' do
@@ -297,8 +330,8 @@ RSpec.describe MrMurano::SyncUpDown do
297
330
  FileUtils.touch(@project_dir + '/tsud/gb/four.lua') # unchg
298
331
  FileUtils.touch(@project_dir + '/tsud/five.lua') # toadd
299
332
  FileUtils.touch(@project_dir + '/tsud/ga/six.lua') # toadd
300
- @t = TSUD.new
301
- expect(@t).to receive(:list).once.and_return(
333
+ @tsud = TSUD.new
334
+ expect(@tsud).to receive(:list).once.and_return(
302
335
  [
303
336
  MrMurano::SyncUpDown::Item.new(
304
337
  name: 'eight.lua', updated_at: ITEM_UPDATED_AT
@@ -321,65 +354,77 @@ RSpec.describe MrMurano::SyncUpDown do
321
354
  ]
322
355
  )
323
356
 
324
- expect(@t).to receive(:to_remote_item)
357
+ expect(@tsud).to receive(:to_remote_items)
325
358
  .with(anything, pathname_globs('**/one.lua'))
326
359
  .and_return(
327
- MrMurano::SyncUpDown::Item.new(
328
- name: 'one.lua', updated_at: ITEM_UPDATED_AT
329
- )
360
+ [
361
+ MrMurano::SyncUpDown::Item.new(
362
+ name: 'one.lua', updated_at: ITEM_UPDATED_AT
363
+ ),
364
+ ]
330
365
  )
331
- expect(@t).to receive(:to_remote_item)
366
+ expect(@tsud).to receive(:to_remote_items)
332
367
  .with(anything, pathname_globs('**/two.lua'))
333
368
  .and_return(
334
- MrMurano::SyncUpDown::Item.new(
335
- name: 'two.lua', updated_at: ITEM_UPDATED_AT
336
- )
369
+ [
370
+ MrMurano::SyncUpDown::Item.new(
371
+ name: 'two.lua', updated_at: ITEM_UPDATED_AT
372
+ ),
373
+ ]
337
374
  )
338
- expect(@t).to receive(:to_remote_item)
375
+ expect(@tsud).to receive(:to_remote_items)
339
376
  .with(anything, pathname_globs('**/three.lua'))
340
377
  .and_return(
341
- MrMurano::SyncUpDown::Item.new(
342
- name: 'three.lua', updated_at: ITEM_UPDATED_AT
343
- )
378
+ [
379
+ MrMurano::SyncUpDown::Item.new(
380
+ name: 'three.lua', updated_at: ITEM_UPDATED_AT
381
+ ),
382
+ ]
344
383
  )
345
- expect(@t).to receive(:to_remote_item)
384
+ expect(@tsud).to receive(:to_remote_items)
346
385
  .with(anything, pathname_globs('**/four.lua'))
347
386
  .and_return(
348
- MrMurano::SyncUpDown::Item.new(
349
- name: 'four.lua', updated_at: ITEM_UPDATED_AT
350
- )
387
+ [
388
+ MrMurano::SyncUpDown::Item.new(
389
+ name: 'four.lua', updated_at: ITEM_UPDATED_AT
390
+ ),
391
+ ]
351
392
  )
352
- expect(@t).to receive(:to_remote_item)
393
+ expect(@tsud).to receive(:to_remote_items)
353
394
  .with(anything, pathname_globs('**/five.lua'))
354
395
  .and_return(
355
- MrMurano::SyncUpDown::Item.new(
356
- name: 'five.lua', updated_at: ITEM_UPDATED_AT
357
- )
396
+ [
397
+ MrMurano::SyncUpDown::Item.new(
398
+ name: 'five.lua', updated_at: ITEM_UPDATED_AT
399
+ ),
400
+ ]
358
401
  )
359
- expect(@t).to receive(:to_remote_item)
402
+ expect(@tsud).to receive(:to_remote_items)
360
403
  .with(anything, pathname_globs('**/six.lua'))
361
404
  .and_return(
362
- MrMurano::SyncUpDown::Item.new(
363
- name: 'six.lua', updated_at: ITEM_UPDATED_AT
364
- )
405
+ [
406
+ MrMurano::SyncUpDown::Item.new(
407
+ name: 'six.lua', updated_at: ITEM_UPDATED_AT
408
+ ),
409
+ ]
365
410
  )
366
411
 
367
- expect(@t).to receive(:docmp)
412
+ expect(@tsud).to receive(:docmp)
368
413
  .with(have_attributes(name: 'one.lua'), anything)
369
414
  .and_return(true)
370
- expect(@t).to receive(:docmp)
415
+ expect(@tsud).to receive(:docmp)
371
416
  .with(have_attributes(name: 'two.lua'), anything)
372
417
  .and_return(true)
373
- expect(@t).to receive(:docmp)
418
+ expect(@tsud).to receive(:docmp)
374
419
  .with(have_attributes(name: 'three.lua'), anything)
375
420
  .and_return(false)
376
- expect(@t).to receive(:docmp)
421
+ expect(@tsud).to receive(:docmp)
377
422
  .with(have_attributes(name: 'four.lua'), anything)
378
423
  .and_return(false)
379
424
  end
380
425
 
381
426
  it 'Returns all with no filter' do
382
- ret = @t.status
427
+ ret = @tsud.status
383
428
  expect(ret).to match(
384
429
  unchg: [
385
430
  have_attributes(
@@ -441,7 +486,7 @@ RSpec.describe MrMurano::SyncUpDown do
441
486
  end
442
487
 
443
488
  it 'Finds local path globs' do
444
- ret = @t.status({}, ['**/ga/*.lua'])
489
+ ret = @tsud.status({}, ['**/ga/*.lua'])
445
490
  expect(ret).to match(
446
491
  unchg: [],
447
492
  toadd: [
@@ -467,7 +512,7 @@ RSpec.describe MrMurano::SyncUpDown do
467
512
  end
468
513
 
469
514
  it 'Finds nothing with specific matcher' do
470
- ret = @t.status({}, ['#foo'])
515
+ ret = @tsud.status({}, ['#foo'])
471
516
  expect(ret).to match(
472
517
  unchg: [],
473
518
  toadd: [],
@@ -479,7 +524,7 @@ RSpec.describe MrMurano::SyncUpDown do
479
524
  end
480
525
 
481
526
  it 'gets all the details' do
482
- ret = @t.status(unselected: true)
527
+ ret = @tsud.status(unselected: true)
483
528
  expect(ret).to match(
484
529
  unchg: [
485
530
  have_attributes(
@@ -555,60 +600,58 @@ RSpec.describe MrMurano::SyncUpDown do
555
600
  FileUtils.mkpath('tsud')
556
601
  FileUtils.touch('tsud/one.lua')
557
602
  FileUtils.touch('tsud/two.lua')
558
- @t = TSUD.new
603
+ @tsud = TSUD.new
559
604
  end
560
605
  it 'finds local items' do
561
- expect(@t).to receive(:to_remote_item).and_return(
562
- { name: 'one.lua' },
563
- name: 'two.lua',
564
- )
565
- ret = @t.localitems(Pathname.new(@project_dir + '/tsud').realpath)
566
- expect(ret).to match(
567
- [
568
- {
569
- name: 'one.lua',
570
- local_path: an_instance_of(Pathname),
571
- },
572
- {
573
- name: 'two.lua',
574
- local_path: an_instance_of(Pathname),
575
- },
576
- ]
606
+ expect(@tsud).to receive(:to_remote_items).and_return(
607
+ [MrMurano::SyncUpDown::Item.new(name: 'one.lua')],
608
+ [MrMurano::SyncUpDown::Item.new(name: 'two.lua')],
577
609
  )
610
+ want = [
611
+ MrMurano::SyncUpDown::Item.new(
612
+ name: 'one.lua',
613
+ local_path: an_instance_of(Pathname),
614
+ ),
615
+ MrMurano::SyncUpDown::Item.new(
616
+ name: 'two.lua',
617
+ local_path: an_instance_of(Pathname),
618
+ ),
619
+ ]
620
+ ret = @tsud.localitems(Pathname.new(@project_dir + '/tsud').realpath)
621
+ expect_status_match_arrs(ret, want)
578
622
  end
579
623
 
580
- it 'takes an array from to_remote_item' do
581
- expect(@t).to receive(:to_remote_item).and_return(
624
+ it 'takes an array from to_remote_items' do
625
+ expect(@tsud).to receive(:to_remote_items).and_return(
582
626
  [
583
- { name: 'one:1' },
584
- { name: 'one:2' },
627
+ MrMurano::SyncUpDown::Item.new(name: 'one:1'),
628
+ MrMurano::SyncUpDown::Item.new(name: 'one:2'),
585
629
  ],
586
630
  [
587
- { name: 'two:1' },
588
- { name: 'two:2' },
631
+ MrMurano::SyncUpDown::Item.new(name: 'two:1'),
632
+ MrMurano::SyncUpDown::Item.new(name: 'two:2'),
589
633
  ],
590
634
  )
591
- ret = @t.localitems(Pathname.new(@project_dir + '/tsud').realpath)
592
- expect(ret).to match(
593
- [
594
- {
595
- name: 'one:1',
596
- local_path: an_instance_of(Pathname),
597
- },
598
- {
599
- name: 'one:2',
600
- local_path: an_instance_of(Pathname),
601
- },
602
- {
603
- name: 'two:1',
604
- local_path: an_instance_of(Pathname),
605
- },
606
- {
607
- name: 'two:2',
608
- local_path: an_instance_of(Pathname),
609
- },
610
- ]
611
- )
635
+ want = [
636
+ MrMurano::SyncUpDown::Item.new(
637
+ name: 'one:1',
638
+ local_path: an_instance_of(Pathname),
639
+ ),
640
+ MrMurano::SyncUpDown::Item.new(
641
+ name: 'one:2',
642
+ local_path: an_instance_of(Pathname),
643
+ ),
644
+ MrMurano::SyncUpDown::Item.new(
645
+ name: 'two:1',
646
+ local_path: an_instance_of(Pathname),
647
+ ),
648
+ MrMurano::SyncUpDown::Item.new(
649
+ name: 'two:2',
650
+ local_path: an_instance_of(Pathname),
651
+ ),
652
+ ]
653
+ ret = @tsud.localitems(Pathname.new(@project_dir + '/tsud').realpath)
654
+ expect_status_match_arrs(ret, want)
612
655
  end
613
656
  end
614
657
 
@@ -617,24 +660,24 @@ RSpec.describe MrMurano::SyncUpDown do
617
660
  FileUtils.mkpath(@project_dir + '/tsud')
618
661
  FileUtils.touch(@project_dir + '/tsud/one.lua')
619
662
  lp = Pathname.new(@project_dir + '/tsud/one.lua').realpath
620
- t = TSUD.new
621
- expect(t).to receive(:fetch).once.with(1).and_yield('foo')
622
- t.download(lp, id: 1, updated_at: ITEM_UPDATED_AT)
663
+ tsud = TSUD.new
664
+ expect(tsud).to receive(:fetch).once.with(1, false).and_yield('foo')
665
+ tsud.download(lp, id: 1, updated_at: ITEM_UPDATED_AT)
623
666
  end
624
667
  end
625
668
 
626
669
  context 'doing diffs' do
627
670
  before(:example) do
628
671
  FileUtils.mkpath(@project_dir + '/tsud')
629
- @t = TSUD.new
672
+ @tsud = TSUD.new
630
673
  @scpt = Pathname.new(@project_dir + '/tsud/one.lua')
631
674
  @scpt.open('w') { |io| io << %(-- fake lua\nreturn 0\n) }
632
675
  @scpt = @scpt.realpath
633
676
  end
634
677
 
635
678
  it 'nothing when same.' do
636
- expect(@t).to receive(:fetch).and_yield(%(-- fake lua\nreturn 0\n))
637
- ret = @t.dodiff(
679
+ expect(@tsud).to receive(:fetch).and_yield(%(-- fake lua\nreturn 0\n))
680
+ ret = @tsud.dodiff(
638
681
  {
639
682
  name: 'one.lua',
640
683
  local_path: @scpt,
@@ -650,8 +693,8 @@ RSpec.describe MrMurano::SyncUpDown do
650
693
  end
651
694
 
652
695
  it 'something when different.' do
653
- expect(@t).to receive(:fetch).and_yield(%(-- fake lua\nreturn 2\n))
654
- ret = @t.dodiff(
696
+ expect(@tsud).to receive(:fetch).and_yield(%(-- fake lua\nreturn 2\n))
697
+ ret = @tsud.dodiff(
655
698
  {
656
699
  name: 'one.lua',
657
700
  local_path: @scpt,
@@ -664,8 +707,8 @@ RSpec.describe MrMurano::SyncUpDown do
664
707
 
665
708
  it 'uses script in item' do
666
709
  script = %(-- fake lua\nreturn 2\n)
667
- expect(@t).to receive(:fetch).and_yield(script)
668
- ret = @t.dodiff(
710
+ expect(@tsud).to receive(:fetch).and_yield(script)
711
+ ret = @tsud.dodiff(
669
712
  {
670
713
  name: 'one.lua',
671
714
  local_path: @scpt,
@@ -685,76 +728,79 @@ RSpec.describe MrMurano::SyncUpDown do
685
728
  context 'syncup' do
686
729
  before(:example) do
687
730
  FileUtils.mkpath(@project_dir + '/tsud')
688
- @t = TSUD.new
731
+ @tsud = TSUD.new
689
732
  end
690
733
 
691
734
  it 'removes' do
692
- expect(@t).to receive(:list).once.and_return(
735
+ expect(@tsud).to receive(:list).once.and_return(
693
736
  [
694
- { name: 1 },
695
- { name: 2 },
696
- { name: 3 },
737
+ MrMurano::SyncUpDown::Item.new(name: 1),
738
+ MrMurano::SyncUpDown::Item.new(name: 2),
739
+ MrMurano::SyncUpDown::Item.new(name: 3),
697
740
  ]
698
741
  )
699
- expect(@t).to receive(:remove).exactly(3).times
700
- @t.syncup(delete: true)
742
+ expect(@tsud).to receive(:remove).exactly(3).times
743
+ @tsud.syncup(delete: true)
701
744
  end
702
745
 
703
746
  it 'creates' do
704
747
  FileUtils.touch(@project_dir + '/tsud/one.lua')
705
748
  FileUtils.touch(@project_dir + '/tsud/two.lua')
706
749
 
707
- expect(@t).to receive(:upload).twice
708
- .with(kind_of(Pathname), kind_of(MrMurano::SyncUpDown::Item), false)
709
- @t.syncup(create: true)
750
+ expect(@tsud).to receive(
751
+ :upload
752
+ ).twice.with(
753
+ kind_of(Pathname), kind_of(MrMurano::SyncUpDown::Item), false
754
+ )
755
+ @tsud.syncup(create: true)
710
756
  end
711
757
 
712
758
  it 'updates' do
713
759
  FileUtils.touch(@project_dir + '/tsud/one.lua')
714
760
  FileUtils.touch(@project_dir + '/tsud/two.lua')
715
- expect(@t).to receive(:list).once.and_return(
761
+ expect(@tsud).to receive(:list).once.and_return(
716
762
  [
717
763
  MrMurano::SyncUpDown::Item.new(name: 'one.lua', updated_at: ITEM_UPDATED_AT),
718
764
  MrMurano::SyncUpDown::Item.new(name: 'two.lua', updated_at: ITEM_UPDATED_AT),
719
765
  ]
720
766
  )
721
767
 
722
- expect(@t).to receive(:upload).twice.with(
768
+ expect(@tsud).to receive(:upload).twice.with(
723
769
  kind_of(Pathname), kind_of(MrMurano::SyncUpDown::Item), true
724
770
  )
725
- expect(@t).to receive(:to_remote_item).and_return(
726
- { name: 'one.lua' },
727
- name: 'two.lua',
771
+ expect(@tsud).to receive(:to_remote_items).and_return(
772
+ [MrMurano::SyncUpDown::Item.new(name: 'one.lua')],
773
+ [MrMurano::SyncUpDown::Item.new(name: 'two.lua')],
728
774
  )
729
- @t.syncup(update: true)
775
+ @tsud.syncup(update: true)
730
776
  end
731
777
  end
732
778
 
733
779
  context 'syncdown' do
734
780
  before(:example) do
735
781
  FileUtils.mkpath(@project_dir + '/tsud')
736
- @t = TSUD.new
782
+ @tsud = TSUD.new
737
783
  end
738
784
 
739
785
  it 'removes' do
740
786
  FileUtils.touch(@project_dir + '/tsud/one.lua')
741
787
  FileUtils.touch(@project_dir + '/tsud/two.lua')
742
788
 
743
- @t.syncdown(delete: true)
789
+ @tsud.syncdown(delete: true)
744
790
  expect(FileTest.exist?(@project_dir + '/tsud/one.lua')).to be false
745
791
  expect(FileTest.exist?(@project_dir + '/tsud/two.lua')).to be false
746
792
  end
747
793
 
748
794
  it 'creates' do
749
- expect(@t).to receive(:list).once.and_return(
795
+ expect(@tsud).to receive(:list).once.and_return(
750
796
  [
751
797
  MrMurano::SyncUpDown::Item.new(name: 'one.lua', updated_at: ITEM_UPDATED_AT),
752
798
  MrMurano::SyncUpDown::Item.new(name: 'two.lua', updated_at: ITEM_UPDATED_AT),
753
799
  ]
754
800
  )
755
801
 
756
- expect(@t).to receive(:fetch).twice.and_yield("--foo\n")
757
- @t.syncdown(create: true)
802
+ expect(@tsud).to receive(:fetch).twice.and_yield("--foo\n")
803
+ @tsud.syncdown(create: true)
758
804
  expect(FileTest.exist?(@project_dir + '/tsud/one.lua')).to be true
759
805
  expect(FileTest.exist?(@project_dir + '/tsud/two.lua')).to be true
760
806
  end
@@ -762,19 +808,23 @@ RSpec.describe MrMurano::SyncUpDown do
762
808
  it 'updates' do
763
809
  FileUtils.touch(@project_dir + '/tsud/one.lua')
764
810
  FileUtils.touch(@project_dir + '/tsud/two.lua')
765
- expect(@t).to receive(:list).once.and_return(
811
+ expect(@tsud).to receive(:list).once.and_return(
766
812
  [
767
813
  MrMurano::SyncUpDown::Item.new(name: 'one.lua', updated_at: ITEM_UPDATED_AT),
768
814
  MrMurano::SyncUpDown::Item.new(name: 'two.lua', updated_at: ITEM_UPDATED_AT),
769
815
  ]
770
816
  )
771
817
 
772
- expect(@t).to receive(:fetch).twice.and_yield("--foo\n")
773
- expect(@t).to receive(:to_remote_item).and_return(
774
- MrMurano::SyncUpDown::Item.new(name: 'one.lua', updated_at: ITEM_UPDATED_AT),
775
- MrMurano::SyncUpDown::Item.new(name: 'two.lua', updated_at: ITEM_UPDATED_AT)
818
+ expect(@tsud).to receive(:fetch).twice.and_yield("--foo\n")
819
+ expect(@tsud).to receive(:to_remote_items).and_return(
820
+ [
821
+ MrMurano::SyncUpDown::Item.new(name: 'one.lua', updated_at: ITEM_UPDATED_AT),
822
+ ],
823
+ [
824
+ MrMurano::SyncUpDown::Item.new(name: 'two.lua', updated_at: ITEM_UPDATED_AT),
825
+ ],
776
826
  )
777
- @t.syncdown(update: true)
827
+ @tsud.syncdown(update: true)
778
828
  expect(FileTest.exist?(@project_dir + '/tsud/one.lua')).to be true
779
829
  expect(FileTest.exist?(@project_dir + '/tsud/two.lua')).to be true
780
830
  end
@@ -784,17 +834,18 @@ RSpec.describe MrMurano::SyncUpDown do
784
834
  # before(:example) do
785
835
  # FileUtils.mkpath(@project_dir + '/tsud')
786
836
  # FileUtils.mkpath(@project_dir + '/bundles/mybun/tsud')
787
- # @t = TSUD.new
837
+ # @tsud = TSUD.new
788
838
  # end
789
839
  #
790
840
  # it "finds items in bundles." do
791
841
  # FileUtils.touch(@project_dir + '/tsud/one.lua')
792
842
  # FileUtils.touch(@project_dir + '/bundles/mybun/tsud/two.lua')
793
843
  #
794
- # expect(@t).to receive(:to_remote_item).and_return(
795
- # {name: 'two.lua'},{name: 'one.lua'}
844
+ # expect(@tsud).to receive(:to_remote_items).and_return(
845
+ # [{name: 'two.lua'}],
846
+ # [{name: 'one.lua'}],
796
847
  # )
797
- # ret = @t.locallist
848
+ # ret = @tsud.locallist
798
849
  # expect(ret).to match([
799
850
  # {name: 'two.lua',
800
851
  # bundled: true,
@@ -808,9 +859,9 @@ RSpec.describe MrMurano::SyncUpDown do
808
859
  # FileUtils.touch(@project_dir + '/tsud/one.lua')
809
860
  # lp = Pathname.new(@project_dir + '/tsud/one.lua').realpath
810
861
  #
811
- # expect(@t).to receive(:warning).once.with(/Not downloading into bundled item.*/)
862
+ # expect(@tsud).to receive(:warning).once.with(/Not downloading into bundled item.*/)
812
863
  #
813
- # @t.download(lp, {bundled: true, name: 'one.lua'})
864
+ # @tsud.download(lp, {bundled: true, name: 'one.lua'})
814
865
  # end
815
866
  # end
816
867
  end