MuranoCLI 3.0.2 → 3.0.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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +30 -59
  3. data/Gemfile +9 -3
  4. data/MuranoCLI.gemspec +11 -4
  5. data/bin/murano +2 -90
  6. data/lib/MrMurano.rb +5 -1
  7. data/lib/MrMurano/{spec_commander.rb → Commander-Entry.rb} +1 -2
  8. data/lib/MrMurano/Solution.rb +12 -15
  9. data/lib/MrMurano/SolutionId.rb +1 -5
  10. data/lib/MrMurano/SyncAllowed.rb +2 -2
  11. data/lib/MrMurano/SyncUpDown.rb +6 -3
  12. data/lib/MrMurano/progress.rb +11 -2
  13. data/lib/MrMurano/verbosing.rb +3 -2
  14. data/lib/MrMurano/version.rb +2 -2
  15. data/spec/Account-Passwords_spec.rb +34 -48
  16. data/spec/Account_spec.rb +58 -63
  17. data/spec/Business_spec.rb +151 -139
  18. data/spec/ConfigFile_spec.rb +15 -11
  19. data/spec/ConfigMigrate_spec.rb +23 -12
  20. data/spec/Config_spec.rb +57 -54
  21. data/spec/Content_spec.rb +233 -201
  22. data/spec/GatewayBase_spec.rb +35 -27
  23. data/spec/GatewayDevice_spec.rb +149 -149
  24. data/spec/GatewayResource_spec.rb +115 -102
  25. data/spec/GatewaySettings_spec.rb +69 -62
  26. data/spec/Http_spec.rb +66 -56
  27. data/spec/MakePretties_spec.rb +82 -73
  28. data/spec/Mock_spec.rb +38 -29
  29. data/spec/ProjectFile_spec.rb +118 -106
  30. data/spec/Setting_spec.rb +24 -15
  31. data/spec/Solution-ServiceConfig_spec.rb +168 -140
  32. data/spec/Solution-ServiceEventHandler_spec.rb +186 -188
  33. data/spec/Solution-ServiceModules_spec.rb +314 -232
  34. data/spec/Solution-UsersRoles_spec.rb +136 -86
  35. data/spec/Solution_spec.rb +78 -50
  36. data/spec/SyncRoot_spec.rb +26 -24
  37. data/spec/SyncUpDown_spec.rb +268 -249
  38. data/spec/Verbosing_spec.rb +95 -93
  39. data/spec/Webservice-Cors_spec.rb +141 -95
  40. data/spec/Webservice-Endpoint_spec.rb +382 -346
  41. data/spec/Webservice-File_spec.rb +148 -109
  42. data/spec/Webservice-Setting_spec.rb +47 -41
  43. data/spec/cmd_business_spec.rb +17 -17
  44. data/spec/cmd_common.rb +27 -7
  45. data/spec/cmd_config_spec.rb +31 -20
  46. data/spec/cmd_content_spec.rb +80 -68
  47. data/spec/cmd_cors_spec.rb +11 -5
  48. data/spec/cmd_device_spec.rb +16 -14
  49. data/spec/cmd_domain_spec.rb +10 -8
  50. data/spec/cmd_exchange_spec.rb +3 -3
  51. data/spec/cmd_init_spec.rb +100 -101
  52. data/spec/cmd_keystore_spec.rb +17 -12
  53. data/spec/cmd_link_spec.rb +22 -37
  54. data/spec/cmd_password_spec.rb +11 -7
  55. data/spec/cmd_setting_application_spec.rb +47 -33
  56. data/spec/cmd_setting_product_spec.rb +32 -27
  57. data/spec/cmd_status_spec.rb +125 -114
  58. data/spec/cmd_syncdown_spec.rb +70 -65
  59. data/spec/cmd_syncup_spec.rb +19 -15
  60. data/spec/cmd_usage_spec.rb +14 -10
  61. metadata +29 -15
@@ -1,4 +1,4 @@
1
- # Last Modified: 2017.08.28 /coding: utf-8
1
+ # Last Modified: 2017.09.12 /coding: utf-8
2
2
  # frozen_string_literal: true
3
3
 
4
4
  # Copyright © 2016-2017 Exosite LLC.
@@ -9,6 +9,7 @@ require 'csv'
9
9
  require 'highline'
10
10
  require 'inflecto'
11
11
  require 'json'
12
+ require 'os'
12
13
  require 'paint'
13
14
  require 'pp'
14
15
  require 'terminal-table'
@@ -173,7 +174,7 @@ module MrMurano
173
174
  end
174
175
 
175
176
  def self.fancy_ticks(obj)
176
- if $cfg.nil? || $cfg['tool.ascii']
177
+ if $cfg.nil? || $cfg['tool.ascii'] || OS.windows?
177
178
  "'#{obj}'"
178
179
  else
179
180
  "‘#{obj}’"
@@ -1,4 +1,4 @@
1
- # Last Modified: 2017.08.31 /coding: utf-8
1
+ # Last Modified: 2017.09.13 /coding: utf-8
2
2
  # frozen_string_literal: true
3
3
 
4
4
  # Copyright © 2016-2017 Exosite LLC.
@@ -26,7 +26,7 @@ module MrMurano
26
26
  # '3.0.0-beta.2' is changed to '3.0.0.pre.beta.2'
27
27
  # which breaks our build (which expects the version to match herein).
28
28
  # So stick to using the '.pre.X' syntax, which ruby/gems knows.
29
- VERSION = '3.0.2'
29
+ VERSION = '3.0.4'
30
30
  EXE_NAME = File.basename($PROGRAM_NAME)
31
31
  SIGN_UP_URL = 'https://exosite.com/signup/'
32
32
  end
@@ -1,4 +1,5 @@
1
- # Last Modified: 2017.07.05 /coding: utf-8
1
+ # Last Modified: 2017.09.12 /coding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  # Copyright © 2016-2017 Exosite LLC.
4
5
  # License: MIT. See LICENSE.txt.
@@ -9,12 +10,12 @@ require 'MrMurano/version'
9
10
  require 'MrMurano/Account'
10
11
  require '_workspace'
11
12
 
12
- RSpec.describe MrMurano::Passwords, "#pwd" do
13
- # Weird: This tests works on its own without the "WORKSPACE",
13
+ RSpec.describe MrMurano::Passwords, '#pwd' do
14
+ # Weird: This tests works on its own without the 'WORKSPACE',
14
15
  # but when run with other tests, it fails. (2017-07-05: I think
15
16
  # I just added the $cfg lines, because MrMurano::Passwords
16
17
  # expects $cfg to be loaded... [lb].)
17
- include_context "WORKSPACE"
18
+ include_context 'WORKSPACE'
18
19
 
19
20
  before(:example) do
20
21
  @saved_cfg = ENV['MURANO_CONFIGFILE']
@@ -31,13 +32,13 @@ RSpec.describe MrMurano::Passwords, "#pwd" do
31
32
  ENV['MURANO_CONFIGFILE'] = @saved_cfg
32
33
  end
33
34
 
34
- it "Creates a file " do
35
+ it 'Creates a file ' do
35
36
  tmpfile = Dir.tmpdir + '/pwtest' # This way because Tempfile.new creates.
36
37
  begin
37
- pwd = MrMurano::Passwords.new( tmpfile )
38
+ pwd = MrMurano::Passwords.new(tmpfile)
38
39
  pwd.save
39
40
 
40
- expect( FileTest.exist?(tmpfile) )
41
+ expect(FileTest.exist?(tmpfile))
41
42
  ensure
42
43
  File.unlink(tmpfile) if File.exist? tmpfile
43
44
  end
@@ -46,31 +47,31 @@ RSpec.describe MrMurano::Passwords, "#pwd" do
46
47
  it "Creates a file in a directory that doesn't exist." do
47
48
  tmpfile = Dir.tmpdir + '/deeper/pwtest' # This way because Tempfile.new creates.
48
49
  begin
49
- pwd = MrMurano::Passwords.new( tmpfile )
50
+ pwd = MrMurano::Passwords.new(tmpfile)
50
51
  pwd.save
51
52
 
52
- expect( FileTest.exist?(tmpfile) )
53
+ expect(FileTest.exist?(tmpfile))
53
54
  ensure
54
55
  File.unlink(tmpfile) if File.exist? tmpfile
55
56
  end
56
57
  end
57
58
 
58
- it "Loads a file" do
59
+ it 'Loads a file' do
59
60
  Tempfile.open('test') do |tf|
60
- tf << %{---
61
+ tf << %(---
61
62
  this.is.a.host:
62
63
  user: password
63
- }
64
+ )
64
65
  tf.close
65
66
 
66
- pwd = MrMurano::Passwords.new( tf.path )
67
+ pwd = MrMurano::Passwords.new(tf.path)
67
68
  pwd.load
68
69
  ps = pwd.get('this.is.a.host', 'user')
69
70
  expect(ps).to eq('password')
70
71
  end
71
72
  end
72
73
 
73
- it "Saves a file" do
74
+ it 'Saves a file' do
74
75
  Tempfile.open('pstest') do |tf|
75
76
  tf.close
76
77
 
@@ -80,34 +81,31 @@ this.is.a.host:
80
81
 
81
82
  File.open(tf.path) do |io|
82
83
  data = io.read
83
- expect(data).to eq(%{---
84
+ expect(data).to eq(%(---
84
85
  this.is.a.host:
85
86
  user3: passwords4
86
- })
87
+ ))
87
88
  end
88
89
  end
89
90
  end
90
91
 
91
- it "Writes multiple hosts" do
92
+ it 'Writes multiple hosts' do
92
93
  Tempfile.open('pwtest') do |tf|
93
94
  tf.close
94
95
 
95
96
  pwd = MrMurano::Passwords.new(tf.path)
96
97
  pwd.set('this.is.a.host', 'user3', 'passwords4')
97
98
  pwd.save
98
- pwd = nil
99
99
 
100
100
  pwd = MrMurano::Passwords.new(tf.path)
101
101
  pwd.load
102
102
  ps = pwd.get('this.is.a.host', 'user3')
103
103
  expect(ps).to eq('passwords4')
104
- pwd = nil
105
104
 
106
105
  pwd = MrMurano::Passwords.new(tf.path)
107
106
  pwd.load
108
107
  pwd.set('another.host', 'user9', 'passwords2')
109
108
  pwd.save
110
- pwd = nil
111
109
 
112
110
  pwd = MrMurano::Passwords.new(tf.path)
113
111
  pwd.load
@@ -115,25 +113,21 @@ this.is.a.host:
115
113
  expect(ps).to eq('passwords4')
116
114
  ps = pwd.get('another.host', 'user9')
117
115
  expect(ps).to eq('passwords2')
118
- pwd = nil
119
-
120
116
  end
121
117
  end
122
118
 
123
- it "Write multiple users to same host" do
119
+ it 'Write multiple users to same host' do
124
120
  Tempfile.open('pwstest') do |tf|
125
121
  tf.close
126
122
 
127
123
  pwd = MrMurano::Passwords.new(tf.path)
128
124
  pwd.set('this.is.a.host', 'user3', 'passwords4')
129
125
  pwd.save
130
- pwd = nil
131
126
 
132
127
  pwd = MrMurano::Passwords.new(tf.path)
133
128
  pwd.load
134
129
  pwd.set('this.is.a.host', 'user9', 'passwords2')
135
130
  pwd.save
136
- pwd = nil
137
131
 
138
132
  pwd = MrMurano::Passwords.new(tf.path)
139
133
  pwd.load
@@ -141,65 +135,57 @@ this.is.a.host:
141
135
  expect(ps).to eq('passwords4')
142
136
  ps = pwd.get('this.is.a.host', 'user9')
143
137
  expect(ps).to eq('passwords2')
144
- pwd = nil
145
-
146
138
  end
147
139
  end
148
140
 
149
- it "lists usernames" do
141
+ it 'lists usernames' do
150
142
  Tempfile.open('pwstest') do |tf|
151
143
  tf.close
152
144
 
153
145
  pwd = MrMurano::Passwords.new(tf.path)
154
146
  pwd.set('this.is.a.host', 'user3', 'passwords4')
155
147
  pwd.save
156
- pwd = nil
157
148
 
158
149
  pwd = MrMurano::Passwords.new(tf.path)
159
150
  pwd.load
160
151
  pwd.set('this.is.a.host', 'user9', 'passwords2')
161
152
  pwd.save
162
- pwd = nil
163
153
 
164
154
  pwd = MrMurano::Passwords.new(tf.path)
165
155
  pwd.load
166
156
  ret = pwd.list
167
- expect(ret).to match({
168
- "this.is.a.host"=>a_collection_containing_exactly("user9", "user3")
169
- })
157
+ expect(ret).to match(
158
+ 'this.is.a.host' => a_collection_containing_exactly('user9', 'user3')
159
+ )
170
160
  end
171
161
  end
172
162
 
173
-
174
- it "removes username" do
163
+ it 'removes username' do
175
164
  Tempfile.open('pwstest') do |tf|
176
165
  tf.close
177
166
 
178
167
  pwd = MrMurano::Passwords.new(tf.path)
179
168
  pwd.set('this.is.a.host', 'user3', 'passwords4')
180
169
  pwd.save
181
- pwd = nil
182
170
 
183
171
  pwd = MrMurano::Passwords.new(tf.path)
184
172
  pwd.load
185
173
  pwd.set('this.is.a.host', 'user9', 'passwords2')
186
174
  pwd.save
187
- pwd = nil
188
175
 
189
176
  pwd = MrMurano::Passwords.new(tf.path)
190
177
  pwd.load
191
178
  pwd.remove('this.is.a.host', 'user3')
192
179
  pwd.save
193
- pwd = nil
194
180
 
195
181
  pwd = MrMurano::Passwords.new(tf.path)
196
182
  pwd.load
197
183
  ret = pwd.list
198
- expect(ret).to match({ "this.is.a.host"=>["user9"] })
184
+ expect(ret).to match('this.is.a.host' => ['user9'])
199
185
  end
200
186
  end
201
187
 
202
- context "Uses ENV" do
188
+ context 'Uses ENV' do
203
189
  before(:example) do
204
190
  ENV['MR_PASSWORD'] = nil
205
191
  end
@@ -207,16 +193,16 @@ this.is.a.host:
207
193
  ENV['MR_PASSWORD'] = nil
208
194
  end
209
195
 
210
- it "Uses ENV instead" do
196
+ it 'Uses ENV instead' do
211
197
  Tempfile.open('test') do |tf|
212
- tf << %{---
198
+ tf << %(---
213
199
  this.is.a.host:
214
200
  user: password
215
- }
201
+ )
216
202
  tf.close
217
203
 
218
204
  ENV['MURANO_PASSWORD'] = 'a test!'
219
- pwd = MrMurano::Passwords.new( tf.path )
205
+ pwd = MrMurano::Passwords.new(tf.path)
220
206
  pwd.load
221
207
  expect(pwd).not_to receive(:warning)
222
208
  ps = pwd.get('this.is.a.host', 'user')
@@ -225,12 +211,12 @@ this.is.a.host:
225
211
  end
226
212
  end
227
213
 
228
- it "Uses ENV instead, even with empty file" do
214
+ it 'Uses ENV instead, even with empty file' do
229
215
  Tempfile.open('test') do |tf|
230
216
  tf.close
231
217
 
232
218
  ENV['MURANO_PASSWORD'] = 'a test!'
233
- pwd = MrMurano::Passwords.new( tf.path )
219
+ pwd = MrMurano::Passwords.new(tf.path)
234
220
  pwd.load
235
221
  expect(pwd).not_to receive(:warning)
236
222
  ps = pwd.get('this.is.a.host', 'user')
@@ -242,12 +228,12 @@ this.is.a.host:
242
228
  end
243
229
  end
244
230
 
245
- it "Warns about migrating" do
231
+ it 'Warns about migrating' do
246
232
  Tempfile.open('test') do |tf|
247
233
  tf.close
248
234
 
249
235
  ENV['MR_PASSWORD'] = 'a test!'
250
- pwd = MrMurano::Passwords.new( tf.path )
236
+ pwd = MrMurano::Passwords.new(tf.path)
251
237
  pwd.load
252
238
  expect(pwd).to receive(:warning).once
253
239
  ps = pwd.get('this.is.a.host', 'user')
@@ -1,4 +1,5 @@
1
- # Last Modified: 2017.08.16 /coding: utf-8
1
+ # Last Modified: 2017.09.12 /coding: utf-8
2
+ # frozen_string_literal: true
2
3
 
3
4
  # Copyright © 2016-2017 Exosite LLC.
4
5
  # License: MIT. See LICENSE.txt.
@@ -11,8 +12,8 @@ require 'MrMurano/Config'
11
12
  require 'MrMurano/ProjectFile'
12
13
  require '_workspace'
13
14
 
14
- RSpec.describe MrMurano::Account, "token" do
15
- include_context "WORKSPACE"
15
+ RSpec.describe MrMurano::Account, 'token' do
16
+ include_context 'WORKSPACE'
16
17
  before(:example) do
17
18
  @saved_cfg = ENV['MURANO_CONFIGFILE']
18
19
  ENV['MURANO_CONFIGFILE'] = nil
@@ -33,43 +34,39 @@ RSpec.describe MrMurano::Account, "token" do
33
34
  ENV['MURANO_CONFIGFILE'] = @saved_cfg
34
35
  end
35
36
 
36
- context "Get login info" do
37
+ context 'Get login info' do
37
38
  before(:example) do
38
- @pswd = instance_double("MrMurano::Passwords")
39
+ @pswd = instance_double('MrMurano::Passwords')
39
40
  allow(@pswd).to receive(:load).and_return(nil)
40
41
  allow(@pswd).to receive(:save).and_return(nil)
41
42
  allow(MrMurano::Passwords).to receive(:new).and_return(@pswd)
42
43
  end
43
44
 
44
- it "Asks for nothing" do
45
- $cfg['user.name'] = "bob"
46
- expect(@pswd).to receive(:get).once.and_return("built")
45
+ it 'Asks for nothing' do
46
+ $cfg['user.name'] = 'bob'
47
+ expect(@pswd).to receive(:get).once.and_return('built')
47
48
 
48
49
  ret = @acc.login_info
49
- expect(ret).to eq({
50
- :email => "bob", :password=>"built"
51
- })
50
+ expect(ret).to eq(email: 'bob', password: 'built')
52
51
  end
53
52
 
54
- it "Asks for user name" do
53
+ it 'Asks for user name' do
55
54
  $cfg['user.name'] = nil
56
55
  expect($terminal).to receive(:ask).once.and_return('bob')
57
56
  expect(@acc).to receive(:error).once
58
57
  expect($cfg).to receive(:set).with('user.name', 'bob', :user).once.and_call_original
59
- expect(@pswd).to receive(:get).once.and_return("built")
58
+ expect(@pswd).to receive(:get).once.and_return('built')
60
59
 
61
60
  ret = @acc.login_info
62
- expect(ret).to eq({
63
- :email => "bob", :password=>"built"
64
- })
61
+ expect(ret).to eq(email: 'bob', password: 'built')
65
62
  end
66
63
 
67
- it "Asks for password" do
68
- $cfg['user.name'] = "bob"
64
+ it 'Asks for password' do
65
+ $cfg['user.name'] = 'bob'
69
66
  expect(@pswd).to receive(:get).with('bizapi.hosted.exosite.io', 'bob').once.and_return(nil)
70
67
  expect(@acc).to receive(:error).once
71
68
  expect($terminal).to receive(:ask).once.and_return('dog')
72
- expect(@pswd).to receive(:set).once.with('bizapi.hosted.exosite.io','bob','dog')
69
+ expect(@pswd).to receive(:set).once.with('bizapi.hosted.exosite.io', 'bob', 'dog')
73
70
  # 2017-07-31: login_info may exit unless the command okays prompting for the password.
74
71
  # (If we don't set this, login_info exits, which we'd want to
75
72
  # catch with
@@ -77,28 +74,28 @@ RSpec.describe MrMurano::Account, "token" do
77
74
  expect($cfg).to receive(:prompt_if_logged_off).and_return(true)
78
75
 
79
76
  ret = @acc.login_info
80
- expect(ret).to eq(email: "bob", password: "dog")
77
+ expect(ret).to eq(email: 'bob', password: 'dog')
81
78
  end
82
79
  end
83
80
 
84
- context "token" do
81
+ context 'token' do
85
82
  before(:example) do
86
- allow(@acc).to receive(:login_info).and_return({:email=>'bob',:password=>'v'})
83
+ allow(@acc).to receive(:login_info).and_return(email: 'bob', password: 'v')
87
84
  end
88
85
 
89
- it "gets a token" do
90
- stub_request(:post, "https://bizapi.hosted.exosite.io/api:1/token/").
91
- with(:body => {:email=>'bob', :password=>'v'}.to_json).
92
- to_return(body: {:token=>"ABCDEFGHIJKLMNOP"}.to_json)
86
+ it 'gets a token' do
87
+ stub_request(:post, 'https://bizapi.hosted.exosite.io/api:1/token/')
88
+ .with(body: { email: 'bob', password: 'v' }.to_json)
89
+ .to_return(body: { token: 'ABCDEFGHIJKLMNOP' }.to_json)
93
90
 
94
91
  ret = @acc.token
95
- expect(ret).to eq("ABCDEFGHIJKLMNOP")
92
+ expect(ret).to eq('ABCDEFGHIJKLMNOP')
96
93
  end
97
94
 
98
- it "gets an error" do
99
- stub_request(:post, "https://bizapi.hosted.exosite.io/api:1/token/").
100
- with(:body => {:email=>'bob', :password=>'v'}.to_json).
101
- to_return(status: 401, body: {}.to_json)
95
+ it 'gets an error' do
96
+ stub_request(:post, 'https://bizapi.hosted.exosite.io/api:1/token/')
97
+ .with(body: { email: 'bob', password: 'v' }.to_json)
98
+ .to_return(status: 401, body: {}.to_json)
102
99
 
103
100
  expect(@acc).to receive(:error).twice.and_return(nil)
104
101
  ret = @acc.token
@@ -111,23 +108,23 @@ RSpec.describe MrMurano::Account, "token" do
111
108
  #}.to raise_error(SystemExit).and output("\e[31mNot logged in!\e[0m\n").to_stderr
112
109
  end
113
110
 
114
- it "uses existing token" do
115
- @acc.token_reset("quxx")
111
+ it 'uses existing token' do
112
+ @acc.token_reset('quxx')
116
113
  ret = @acc.token
117
- expect(ret).to eq("quxx")
114
+ expect(ret).to eq('quxx')
118
115
  end
119
116
 
120
- it "uses existing token, even with new instance" do
121
- @acc.token_reset("quxx")
117
+ it 'uses existing token, even with new instance' do
118
+ @acc.token_reset('quxx')
122
119
  acc = MrMurano::Account.instance
123
120
  ret = acc.token
124
- expect(ret).to eq("quxx")
121
+ expect(ret).to eq('quxx')
125
122
  end
126
123
  end
127
124
  end
128
125
 
129
126
  RSpec.describe MrMurano::Account do
130
- include_context "WORKSPACE"
127
+ include_context 'WORKSPACE'
131
128
  before(:example) do
132
129
  @saved_cfg = ENV['MURANO_CONFIGFILE']
133
130
  ENV['MURANO_CONFIGFILE'] = nil
@@ -138,32 +135,30 @@ RSpec.describe MrMurano::Account do
138
135
  $cfg['product.id'] = 'XYZ'
139
136
 
140
137
  @acc = MrMurano::Account.instance
141
- allow(@acc).to receive(:token).and_return("TTTTTTTTTT")
138
+ allow(@acc).to receive(:token).and_return('TTTTTTTTTT')
142
139
  end
143
140
  after(:example) do
144
141
  ENV['MURANO_CONFIGFILE'] = @saved_cfg
145
142
  end
146
143
 
147
- it "initializes" do
144
+ it 'initializes' do
148
145
  uri = @acc.endpoint('')
149
- expect(uri.to_s).to eq("https://bizapi.hosted.exosite.io/api:1/")
146
+ expect(uri.to_s).to eq('https://bizapi.hosted.exosite.io/api:1/')
150
147
  end
151
148
 
152
- context "lists business" do
153
- it "for user.name" do
149
+ context 'lists business' do
150
+ it 'for user.name' do
154
151
  # http.rb::json_opts() sets :symbolize_names=>true, so use symbols, not strings.
155
152
  bizlist = [
156
- {:bizid=>"YYY",
157
- :role=>"admin",
158
- :name=>"MAE",
159
- },
160
- {:bizid=>"XXX",
161
- :role=>"admin",
162
- :name=>"MPS",
163
- },
153
+ { bizid: 'YYY',
154
+ role: 'admin',
155
+ name: 'MAE', },
156
+ { bizid: 'XXX',
157
+ role: 'admin',
158
+ name: 'MPS', },
164
159
  ]
165
- stub_request(:get, "https://bizapi.hosted.exosite.io/api:1/user/BoB@place.net/membership/").
166
- to_return(body: bizlist)
160
+ stub_request(:get, 'https://bizapi.hosted.exosite.io/api:1/user/BoB@place.net/membership/')
161
+ .to_return(body: bizlist)
167
162
 
168
163
  buslist = []
169
164
  buslist << MrMurano::Business.new(bizlist[0])
@@ -174,24 +169,24 @@ RSpec.describe MrMurano::Account do
174
169
  expect(ret).to eq(buslist)
175
170
  end
176
171
 
177
- it "asks for account when missing" do
172
+ it 'asks for account when missing' do
178
173
  bizlist = [
179
- {:bizid=>"YYY",
180
- :role=>"admin",
181
- :name=>"MAE"},
182
- {:bizid=>"XXX",
183
- :role=>"admin",
184
- :name=>"MPS"},
174
+ { bizid: 'YYY',
175
+ role: 'admin',
176
+ name: 'MAE', },
177
+ { bizid: 'XXX',
178
+ role: 'admin',
179
+ name: 'MPS', },
185
180
  ]
186
- stub_request(:get, "https://bizapi.hosted.exosite.io/api:1/user/BoB@place.net/membership/").
187
- to_return(body: bizlist)
181
+ stub_request(:get, 'https://bizapi.hosted.exosite.io/api:1/user/BoB@place.net/membership/')
182
+ .to_return(body: bizlist)
188
183
 
189
184
  buslist = []
190
185
  buslist << MrMurano::Business.new(bizlist[0])
191
186
  buslist << MrMurano::Business.new(bizlist[1])
192
187
 
193
188
  $cfg['user.name'] = nil
194
- expect(@acc).to receive(:login_info) do |arg|
189
+ expect(@acc).to receive(:login_info) do |_arg|
195
190
  $cfg['user.name'] = 'BoB@place.net'
196
191
  end
197
192