puppet-repl 0.1.1 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,5 +1,5 @@
1
1
  require 'spec_helper'
2
-
2
+ require 'stringio'
3
3
  describe "PuppetRepl" do
4
4
 
5
5
  let(:resource) do
@@ -10,8 +10,12 @@ describe "PuppetRepl" do
10
10
  repl.handle_input('reset')
11
11
  end
12
12
 
13
+ let(:output) do
14
+ StringIO.new('', 'w')
15
+ end
16
+
13
17
  let(:repl) do
14
- PuppetRepl::Cli.new
18
+ PuppetRepl::Cli.new(:out_buffer => output)
15
19
  end
16
20
 
17
21
  let(:input) do
@@ -22,6 +26,39 @@ describe "PuppetRepl" do
22
26
  repl.parser.evaluate_string(repl.scope, input)
23
27
  end
24
28
 
29
+ describe 'multiple lines of input' do
30
+ describe '3 lines' do
31
+ let(:input) do
32
+ "$var1 = 'test'\nfile{\"/tmp/${var1}.txt\": ensure => present, mode => '0755'}\nvars"
33
+ end
34
+ it do
35
+ repl.handle_input(input)
36
+ expect(output.string).to match(/server_facts/) if Puppet.version.to_f >= 4.1
37
+ expect(output.string).to match(/test/)
38
+ expect(output.string).to match(/Puppet::Type::File/)
39
+ end
40
+ end
41
+ describe '2 lines' do
42
+ let(:input) do
43
+ "$var1 = 'test'\n $var2 = 'test2'"
44
+ end
45
+ it do
46
+ repl.handle_input(input)
47
+ expect(output.string).to eq("\n => \e[0;33m\"test\"\e[0m\n => \e[0;33m\"test2\"\e[0m\n")
48
+ end
49
+ end
50
+ describe '1 lines' do
51
+ let(:input) do
52
+ "$var1 = 'test'"
53
+ end
54
+ it do
55
+ repl.handle_input(input)
56
+ expect(output.string).to eq("\n => \e[0;33m\"test\"\e[0m\n")
57
+ end
58
+ end
59
+
60
+ end
61
+
25
62
  describe 'returns a array of resource_types' do
26
63
  it 'returns resource type' do
27
64
  expect(resource_types.first.class.to_s).to eq('Puppet::Pops::Types::PResourceType')
@@ -33,12 +70,13 @@ describe "PuppetRepl" do
33
70
  'help'
34
71
  end
35
72
  it 'can show the help screen' do
36
- repl_output = /Type \"exit\", \"functions\", \"vars\", \"krt\", \"facts\", \"resources\", \"classes\",\n \"play\",\"reset\", or \"help\" for more information.\n\n/
37
- expect{repl.handle_input(input)}.to output(/Ruby Version: #{RUBY_VERSION}\n/).to_stdout
38
- expect{repl.handle_input(input)}.to output(/Puppet Version: \d.\d.\d\n/).to_stdout
39
- expect{repl.handle_input(input)}.to output(/Puppet Repl Version: \d.\d.\d\n/).to_stdout
40
- expect{repl.handle_input(input)}.to output(/Created by: NWOps <corey@nwops.io>\n/).to_stdout
41
- expect{repl.handle_input(input)}.to output(repl_output).to_stdout
73
+ expected_repl_output = /Type \"exit\", \"functions\", \"vars\", \"krt\", \"facts\", \"resources\", \"classes\",\n \"play\", \"classification\", \"reset\", or \"help\" for more information.\n\n/
74
+ repl.handle_input(input)
75
+ expect(output.string).to match(/Ruby Version: #{RUBY_VERSION}\n/)
76
+ expect(output.string).to match(/Puppet Version: \d.\d.\d\n/)
77
+ expect(output.string).to match(/Puppet Repl Version: \d.\d.\d\n/)
78
+ expect(output.string).to match(/Created by: NWOps <corey@nwops.io>\n/)
79
+ expect(output.string).to match(expected_repl_output)
42
80
  end
43
81
  end
44
82
 
@@ -47,16 +85,18 @@ describe "PuppetRepl" do
47
85
  ""
48
86
  end
49
87
  it 'can run' do
50
- repl_output = " => \n"
51
- expect{repl.handle_input(input)}.to output(repl_output).to_stdout
88
+ repl_output = "\n"
89
+ repl.handle_input(input)
90
+ expect(output.string).to eq(repl_output)
52
91
  end
53
92
  describe 'space' do
54
93
  let(:input) do
55
94
  " "
56
95
  end
57
96
  it 'can run' do
58
- repl_output = " => \n"
59
- expect{repl.handle_input(input)}.to output(repl_output).to_stdout
97
+ repl_output = "\n => \n"
98
+ repl.handle_input(input)
99
+ expect(output.string).to eq(repl_output)
60
100
  end
61
101
  end
62
102
  end
@@ -67,7 +107,8 @@ describe "PuppetRepl" do
67
107
  end
68
108
  it 'can run' do
69
109
  repl_output = /hostclasses/
70
- expect{repl.handle_input(input)}.to output(repl_output).to_stdout
110
+ repl.handle_input(input)
111
+ expect(output.string).to match(repl_output)
71
112
  end
72
113
  end
73
114
 
@@ -80,12 +121,13 @@ describe "PuppetRepl" do
80
121
  'https://gist.githubusercontent.com/logicminds/f9b1ac65a3a440d562b0/raw'
81
122
  end
82
123
  it 'file' do
83
- expect{repl.handle_input("play #{fixtures_file}")}.to output(/Puppet::Type::File/).to_stdout
124
+ repl.handle_input("play #{fixtures_file}")
125
+ expect(output.string).to match(/Puppet::Type::File/)
84
126
  end
85
127
  it 'url' do
86
- expect{repl.handle_input("play #{file_url}")}.to output(/Puppet::Type::File/).to_stdout
128
+ repl.handle_input("play #{file_url}")
129
+ expect(output.string).to match(/Puppet::Type::File/)
87
130
  end
88
-
89
131
  end
90
132
 
91
133
  describe 'variables' do
@@ -93,8 +135,9 @@ describe "PuppetRepl" do
93
135
  "$file_path = '/tmp/test2.txt'"
94
136
  end
95
137
  it 'can process a variable' do
96
- repl_output = " => \e[0;33m\"/tmp/test2.txt\"\e[0m\n"
97
- expect{repl.handle_input(input)}.to output(repl_output).to_stdout
138
+ repl_output = "\n => \e[0;33m\"/tmp/test2.txt\"\e[0m\n"
139
+ repl.handle_input(input)
140
+ expect(output.string).to eq(repl_output)
98
141
  end
99
142
  end
100
143
 
@@ -104,7 +147,8 @@ describe "PuppetRepl" do
104
147
  end
105
148
  it 'can process a resource' do
106
149
  repl_output = /Puppet::Type::File/
107
- expect{repl.handle_input(input)}.to output(repl_output).to_stdout
150
+ repl.handle_input(input)
151
+ expect(output.string).to match(repl_output)
108
152
  end
109
153
  end
110
154
 
@@ -113,18 +157,20 @@ describe "PuppetRepl" do
113
157
  "Service{"
114
158
  end
115
159
  it 'can process' do
116
- repl_output = " => \e[31mSyntax error at end of file\e[0m\n"
117
- expect{repl.handle_input(input)}.to output(repl_output).to_stdout
160
+ repl_output = "\n => \e[31mSyntax error at end of file\e[0m\n"
161
+ repl.handle_input(input)
162
+ expect(output.string).to eq(repl_output)
118
163
  end
119
164
  end
120
165
 
121
- describe 'bad resources' do
166
+ describe 'classification' do
122
167
  let(:input) do
123
- "file{'/tmp/test': ensure => present, mode => 755}"
168
+ "classification"
124
169
  end
125
- xit 'can process' do #this fails with puppet 3.8 and passes with others
126
- repl_output = /must be a string/
127
- expect{repl.handle_input(input)}.to output(repl_output).to_stdout
170
+
171
+ it 'can process a file' do
172
+ repl.handle_input(input)
173
+ expect(output.string).to eq("\n[]\n")
128
174
  end
129
175
  end
130
176
 
@@ -135,19 +181,21 @@ describe "PuppetRepl" do
135
181
 
136
182
  it 'can process a file' do
137
183
  repl_output = /Puppet::Type::File/
138
- expect{repl.handle_input(input)}.to output(repl_output).to_stdout
184
+ repl.handle_input(input)
185
+ expect(output.string).to match(repl_output)
139
186
  repl.handle_input('reset')
140
- expect{repl.handle_input(input)}.to output(repl_output).to_stdout
187
+ repl.handle_input(input)
188
+ expect(output.string).to match(repl_output)
141
189
  end
142
190
 
143
191
  describe 'loglevel' do
144
192
  it 'has not changed' do
145
193
  repl.handle_input(":set loglevel debug")
146
194
  expect(Puppet::Util::Log.level).to eq(:debug)
147
- expect(Puppet::Util::Log.destinations[:console].name).to eq(:console)
195
+ expect(Puppet::Util::Log.destinations[:buffer].name).to eq(:buffer)
148
196
  repl.handle_input('reset')
149
197
  expect(Puppet::Util::Log.level).to eq(:debug)
150
- expect(Puppet::Util::Log.destinations[:console].name).to eq(:console)
198
+ expect(Puppet::Util::Log.destinations[:buffer].name).to eq(:buffer)
151
199
  end
152
200
  end
153
201
  end
@@ -158,7 +206,8 @@ describe "PuppetRepl" do
158
206
  end
159
207
  it 'can process a each block' do
160
208
  repl_output = /Puppet::Type::File/
161
- expect{repl.handle_input(input)}.to output(repl_output).to_stdout
209
+ repl.handle_input(input)
210
+ expect(output.string).to match(repl_output)
162
211
  end
163
212
  end
164
213
 
@@ -167,10 +216,11 @@ describe "PuppetRepl" do
167
216
  "['/tmp/test3', '/tmp/test4'].each |String $path| { file{$path: ensure => present} }"
168
217
  end
169
218
  let(:repl_output) do
170
- " => [\n \e[1;37m[0] \e[0m\e[0;33m\"/tmp/test3\"\e[0m,\n \e[1;37m[1] \e[0m\e[0;33m\"/tmp/test4\"\e[0m\n]\n"
219
+ "\n => [\n \e[1;37m[0] \e[0m\e[0;33m\"/tmp/test3\"\e[0m,\n \e[1;37m[1] \e[0m\e[0;33m\"/tmp/test4\"\e[0m\n]\n"
171
220
  end
172
221
  it 'can process a each block' do
173
- expect{repl.handle_input(input)}.to output(repl_output).to_stdout
222
+ repl.handle_input(input)
223
+ expect(output.string).to eq(repl_output)
174
224
  end
175
225
  end
176
226
 
@@ -179,8 +229,9 @@ describe "PuppetRepl" do
179
229
  "$::fqdn"
180
230
  end
181
231
  it 'should be able to resolve fqdn' do
182
- repl_output = " => \e[0;33m\"foo.example.com\"\e[0m\n"
183
- expect{repl.handle_input(input)}.to output(repl_output).to_stdout
232
+ repl_output = "\n => \e[0;33m\"foo.example.com\"\e[0m\n"
233
+ repl.handle_input(input)
234
+ expect(output.string).to eq(repl_output)
184
235
  end
185
236
  end
186
237
 
@@ -189,7 +240,9 @@ describe "PuppetRepl" do
189
240
  "facts"
190
241
  end
191
242
  it 'should be able to print facts' do
192
- expect{repl.handle_input(input)}.to output(/kernel/).to_stdout
243
+ repl_output = /kernel/
244
+ repl.handle_input(input)
245
+ expect(output.string).to match(repl_output)
193
246
  end
194
247
  end
195
248
 
@@ -198,7 +251,20 @@ describe "PuppetRepl" do
198
251
  'resources'
199
252
  end
200
253
  it 'should be able to print resources' do
201
- expect{repl.handle_input(input)}.to output(/main/).to_stdout
254
+ repl_output = /main/
255
+ repl.handle_input(input)
256
+ expect(output.string).to match(repl_output)
257
+ end
258
+ end
259
+
260
+ describe 'print class' do
261
+ let(:input) do
262
+ "Class['settings']"
263
+ end
264
+ it 'should be able to print classes' do
265
+ repl_output = /Settings/
266
+ repl.handle_input(input)
267
+ expect(output.string).to match(repl_output)
202
268
  end
203
269
  end
204
270
 
@@ -207,7 +273,9 @@ describe "PuppetRepl" do
207
273
  'resources'
208
274
  end
209
275
  it 'should be able to print classes' do
210
- expect{repl.handle_input(input)}.to output(/Settings/).to_stdout
276
+ repl_output = /Settings/
277
+ repl.handle_input(input)
278
+ expect(output.string).to match(repl_output)
211
279
  end
212
280
  end
213
281
 
@@ -216,10 +284,11 @@ describe "PuppetRepl" do
216
284
  ":set loglevel debug"
217
285
  end
218
286
  it 'should set the loglevel' do
219
- output = /loglevel debug is set/
220
- expect{repl.handle_input(input)}.to output(output).to_stdout
287
+ repl_output = /loglevel debug is set/
288
+ repl.handle_input(input)
289
+ expect(output.string).to match(repl_output)
221
290
  expect(Puppet::Util::Log.level).to eq(:debug)
222
- expect(Puppet::Util::Log.destinations[:console].name).to eq(:console)
291
+ expect(Puppet::Util::Log.destinations[:buffer].name).to eq(:buffer)
223
292
  end
224
293
  end
225
294
 
@@ -228,16 +297,29 @@ describe "PuppetRepl" do
228
297
  "vars"
229
298
  end
230
299
  it 'display facts variable' do
231
- output = /facts/
232
- expect{repl.handle_input(input)}.to output(output).to_stdout
300
+ repl_output = /facts/
301
+ repl.handle_input(input)
302
+ expect(output.string).to match(repl_output)
303
+ end
304
+ it 'display server facts variable' do
305
+ repl_output = /server_facts/
306
+ repl.handle_input(input)
307
+ expect(output.string).to match(repl_output) if Puppet.version.to_f >= 4.1
308
+ end
309
+ it 'display serverversion variable' do
310
+ repl_output = /serverversion/
311
+ repl.handle_input(input)
312
+ expect(output.string).to match(repl_output) if Puppet.version.to_f >= 4.1
233
313
  end
234
314
  it 'display local variable' do
235
- expect{repl.handle_input("$var1 = 'value1'")}.to output(/value1/).to_stdout
236
- expect{repl.handle_input("$var1")}.to output(/value1/).to_stdout
237
-
315
+ repl.handle_input("$var1 = 'value1'")
316
+ expect(output.string).to match(/value1/)
317
+ repl.handle_input("$var1")
318
+ expect(output.string).to match(/value1/)
238
319
  end
239
320
  it 'display productname variable' do
240
- expect{repl.handle_input("$productname")}.to output(/VirtualBox/).to_stdout
321
+ repl.handle_input("$productname")
322
+ expect(output.string).to match(/VirtualBox/)
241
323
  end
242
324
  end
243
325
 
@@ -246,13 +328,181 @@ describe "PuppetRepl" do
246
328
  "md5('hello')"
247
329
  end
248
330
  it 'execute md5' do
249
- sum = " => \e[0;33m\"5d41402abc4b2a76b9719d911017c592\"\e[0m\n"
250
- expect{repl.handle_input(input)}.to output(sum).to_stdout
331
+ repl_output = "\n => \e[0;33m\"5d41402abc4b2a76b9719d911017c592\"\e[0m\n"
332
+ repl.handle_input(input)
333
+ expect(output.string).to eq(repl_output)
251
334
  end
252
335
  it 'execute swapcase' do
253
- output = /HELLO/
254
- expect{repl.handle_input("swapcase('hello')")}.to output(output).to_stdout
336
+ repl_output = /HELLO/
337
+ repl.handle_input("swapcase('hello')")
338
+ expect(output.string).to match(repl_output)
339
+ end
340
+ end
341
+
342
+ describe 'unidentified object' do
343
+ let(:repl_output) { "\n => \n" }
344
+ describe "Node['foot']" do
345
+ let(:input) { subject }
346
+ it 'returns string' do
347
+ repl.handle_input(input)
348
+ expect(output.string).to eq(repl_output)
349
+ end
350
+ end
351
+ describe "Puppet::Pops::Types::PStringType" do
352
+ let(:input) { subject }
353
+ it 'returns string' do
354
+ repl.handle_input(input)
355
+ expect(output.string).to eq(repl_output)
356
+ end
357
+ end
358
+ describe 'Facts' do
359
+ let(:input) { subject }
360
+ it 'returns string' do
361
+ repl.handle_input(input)
362
+ expect(output.string).to eq(repl_output)
363
+ end
364
+ end
365
+ end
366
+
367
+ describe 'remote node' do
368
+ let(:node_obj) do
369
+ YAML.load_file(File.join(fixtures_dir, 'node_obj.yaml'))
370
+ end
371
+ let(:node_name) do
372
+ 'puppetdev.localdomain'
373
+ end
374
+ before :each do
375
+ allow(repl).to receive(:get_remote_node).with(node_name).and_return(node_obj)
376
+ repl.handle_input(":set node #{node_name}")
377
+ end
378
+
379
+ describe 'set' do
380
+ it 'sends message about resetting' do
381
+ expect(output.string).to eq("\n => Resetting to use node puppetdev.localdomain\n")
382
+ end
383
+
384
+ it "return node name" do
385
+ output.reopen # removes previous message
386
+ repl.handle_input('$::hostname')
387
+ expect(output.string).to match(/puppetdev.localdomain/)
388
+ end
389
+
390
+ it "return classification" do
391
+ output.reopen # removes previous message
392
+ repl.handle_input('classification')
393
+ expect(output.string).to match(/certificate_authority_host/)
394
+ end
395
+ end
396
+
397
+ describe 'facts' do
398
+ let(:input) do
399
+ "$::facts['os']['family'].downcase == 'debian'"
400
+ end
401
+ it 'fact evaulation should return false' do
402
+ repl_output = /false/
403
+ repl.handle_input(input)
404
+ expect(output.string).to match(repl_output)
405
+ end
406
+
407
+ end
408
+ describe 'use defaults when invalid' do
409
+ let(:node_obj) do
410
+ YAML.load_file(File.join(fixtures_dir, 'invalid_node_obj.yaml'))
411
+ end
412
+ let(:node_name) do
413
+ 'invalid.localdomain'
414
+ end
415
+ it 'name' do
416
+ expect{repl.node.name}.to raise_error(PuppetRepl::Exception::UndefinedNode)
417
+ end
418
+ end
419
+
420
+ it 'set node name' do
421
+ expect(repl.remote_node_name = 'puppetdev.localdomain').to eq("puppetdev.localdomain")
422
+ end
423
+
424
+ describe 'print classes' do
425
+ let(:input) do
426
+ 'resources'
427
+ end
428
+ it 'should be able to print classes' do
429
+ repl_output = /Settings/
430
+ repl.handle_input(input)
431
+ expect(output.string).to match(repl_output)
432
+ end
255
433
  end
256
434
 
435
+ describe 'vars' do
436
+ let(:input) do
437
+ "vars"
438
+ end
439
+ it 'display facts variable' do
440
+ repl_output = /facts/
441
+ repl.handle_input(input)
442
+ expect(output.string).to match(repl_output)
443
+ end
444
+ it 'display server facts variable' do
445
+ repl_output = /server_facts/
446
+ repl.handle_input(input)
447
+ expect(output.string).to match(repl_output) if Puppet.version.to_f >= 4.1
448
+ end
449
+ it 'display server facts variable' do
450
+ repl_output = /server_facts/
451
+ repl.handle_input(input)
452
+ expect(output.string).to match(repl_output) if Puppet.version.to_f >= 4.1
453
+ end
454
+ it 'display local variable' do
455
+ repl.handle_input("$var1 = 'value1'")
456
+ expect(output.string).to match(/value1/)
457
+ repl.handle_input("$var1")
458
+ expect(output.string).to match(/value1/)
459
+ end
460
+ it 'display productname variable' do
461
+ repl.handle_input("$productname")
462
+ expect(output.string).to match(/VMware Virtual Platform/)
463
+ end
464
+ end
465
+
466
+ describe 'execute functions' do
467
+ let(:input) do
468
+ "md5('hello')"
469
+ end
470
+ it 'execute md5' do
471
+ repl_output = /5d41402abc4b2a76b9719d911017c592/
472
+ repl.handle_input(input)
473
+ expect(output.string).to match(repl_output)
474
+ end
475
+ it 'execute swapcase' do
476
+ repl_output = /HELLO/
477
+ repl.handle_input("swapcase('hello')")
478
+ expect(output.string).to match(repl_output)
479
+ end
480
+ end
481
+
482
+ describe 'reset' do
483
+ let(:input) do
484
+ "file{'/tmp/reset': ensure => present}"
485
+ end
486
+
487
+ it 'can process a file' do
488
+ repl_output = /Puppet::Type::File/
489
+ repl.handle_input(input)
490
+ expect(output.string).to match(repl_output)
491
+ repl.handle_input('reset')
492
+ repl.handle_input(input)
493
+ expect(output.string).to match(repl_output)
494
+ end
495
+ end
496
+
497
+ describe 'classification' do
498
+ let(:input) do
499
+ "classification"
500
+ end
501
+
502
+ it 'shows certificate_authority_host' do
503
+ repl.handle_input(input)
504
+ expect(output.string).to match(/certificate_authority_host/)
505
+ end
506
+ end
257
507
  end
258
508
  end
data/spec/spec_helper.rb CHANGED
@@ -1,20 +1,22 @@
1
1
  require 'simplecov'
2
2
  require_relative '../lib/puppet-repl'
3
-
4
- module SimpleCov::Configuration
5
- def clean_filters
6
- @filters = []
7
- end
8
- end
9
-
10
- SimpleCov.configure do
11
- clean_filters
12
- load_adapter 'test_frameworks'
13
- end
14
-
15
- ENV["COVERAGE"] && SimpleCov.start do
16
- add_filter "/.rvm/"
17
- end
3
+ require 'yaml'
4
+ # module SimpleCov::Configuration
5
+ # def clean_filters
6
+ # @filters = []
7
+ # end
8
+ # end
9
+ #
10
+ # SimpleCov.configure do
11
+ # clean_filters
12
+ # load_profile 'test_frameworks'
13
+ # end
14
+ #
15
+ # SimpleCov.start do
16
+ # add_filter "/.rvm/"
17
+ # add_filter "vendor"
18
+ # add_filter "bundler"
19
+ # end
18
20
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
19
21
  $LOAD_PATH.unshift(File.dirname(__FILE__))
20
22
 
data/spec/support_spec.rb CHANGED
@@ -3,14 +3,38 @@ require 'tempfile'
3
3
 
4
4
  describe 'support' do
5
5
 
6
+ let(:output) do
7
+ StringIO.new('', 'w')
8
+ end
9
+
6
10
  let(:repl) do
7
- PuppetRepl::Cli.new
11
+ PuppetRepl::Cli.new(:out_buffer => output)
8
12
  end
9
13
 
10
14
  let(:scope) do
11
15
  repl.scope
12
16
  end
13
17
 
18
+ describe 'play' do
19
+ let(:url) do
20
+ 'https://gist.github.com/logicminds/f9b1ac65a3a440d562b0'
21
+ end
22
+ let(:input) do
23
+ "play #{url}"
24
+ end
25
+
26
+ let(:expected) do
27
+ ''
28
+ end
29
+
30
+ it do
31
+ repl.handle_input(input)
32
+ expect(output.string).to match(/server_facts/) if Puppet.version.to_f >= 4.1
33
+ expect(output.string).to match(/test/)
34
+ expect(output.string).to match(/Puppet::Type::File/)
35
+ end
36
+ end
37
+
14
38
  let(:puppet_version) do
15
39
  repl.mod_finder.match(repl.puppet_lib_dir)[1]
16
40
  end
@@ -29,7 +53,6 @@ describe 'support' do
29
53
  service{'httpd': ensure => running}\n
30
54
 
31
55
  EOF
32
-
33
56
  end
34
57
 
35
58
  after(:each) do
@@ -68,4 +91,93 @@ describe 'support' do
68
91
  expect(repl.node.facts.values['fqdn']).to eq('foo.example.com')
69
92
  end
70
93
 
94
+ describe 'convert url' do
95
+
96
+ describe 'unsupported' do
97
+ let(:url) { 'https://bitbuck.com/master/lib/log_helper.rb'}
98
+ let(:converted) { 'https://bitbuck.com/master/lib/log_helper.rb' }
99
+ it do
100
+ expect(repl.convert_to_text(url)).to eq(converted)
101
+ end
102
+ end
103
+ describe 'gitlab' do
104
+ describe 'blob' do
105
+ let(:url) { 'https://gitlab.com/nwops/prepl-web/blob/master/lib/log_helper.rb'}
106
+ let(:converted) { 'https://gitlab.com/nwops/prepl-web/raw/master/lib/log_helper.rb' }
107
+ it do
108
+ expect(repl.convert_to_text(url)).to eq(converted)
109
+ end
110
+ end
111
+
112
+ describe 'raw' do
113
+ let(:url) { 'https://gitlab.com/nwops/prepl-web/raw/master/lib/log_helper.rb'}
114
+ let(:converted) { 'https://gitlab.com/nwops/prepl-web/raw/master/lib/log_helper.rb' }
115
+ it do
116
+ expect(repl.convert_to_text(url)).to eq(converted)
117
+ end
118
+ end
119
+
120
+ describe 'snippet' do
121
+
122
+ describe 'not raw' do
123
+ let(:url) { 'https://gitlab.com/snippets/19471'}
124
+ let(:converted) { 'https://gitlab.com/snippets/19471/raw'}
125
+ it do
126
+ expect(repl.convert_to_text(url)).to eq(converted)
127
+ end
128
+ end
129
+
130
+ describe 'raw' do
131
+ let(:url) { 'https://gitlab.com/snippets/19471/raw'}
132
+ let(:converted) { 'https://gitlab.com/snippets/19471/raw'}
133
+ it do
134
+ expect(repl.convert_to_text(url)).to eq(converted)
135
+ end
136
+ end
137
+ end
138
+ end
139
+
140
+ describe 'github' do
141
+ describe 'raw' do
142
+ let(:url) { 'https://gist.githubusercontent.com/logicminds/f9b1ac65a3a440d562b0/raw'}
143
+ let(:converted) { 'https://gist.githubusercontent.com/logicminds/f9b1ac65a3a440d562b0/raw' }
144
+ it do
145
+ expect(repl.convert_to_text(url)).to eq(converted)
146
+ end
147
+ end
148
+
149
+ describe 'raw gist' do
150
+ let(:url) {'https://gist.githubusercontent.com/logicminds/f9b1ac65a3a440d562b0/raw/c8f6be52da5b2b0eeaabb9aa75832b75793d35d1/controls.pp'}
151
+ let(:converted) {'https://gist.githubusercontent.com/logicminds/f9b1ac65a3a440d562b0/raw/c8f6be52da5b2b0eeaabb9aa75832b75793d35d1/controls.pp'}
152
+ it do
153
+ expect(repl.convert_to_text(url)).to eq(converted)
154
+ end
155
+ end
156
+ describe 'raw non gist' do
157
+ let(:url) { 'https://raw.githubusercontent.com/nwops/puppet-repl/master/lib/puppet-repl.rb'}
158
+ let(:converted) { 'https://raw.githubusercontent.com/nwops/puppet-repl/master/lib/puppet-repl.rb' }
159
+ it do
160
+ expect(repl.convert_to_text(url)).to eq(converted)
161
+ end
162
+
163
+ end
164
+
165
+ describe 'blob' do
166
+ let(:url) { 'https://github.com/nwops/puppet-repl/blob/master/lib/puppet-repl.rb'}
167
+ let(:converted) { 'https://github.com/nwops/puppet-repl/raw/master/lib/puppet-repl.rb' }
168
+ it do
169
+ expect(repl.convert_to_text(url)).to eq(converted)
170
+ end
171
+ end
172
+
173
+ describe 'gist' do
174
+ let(:url) { 'https://gist.github.com/logicminds/f9b1ac65a3a440d562b0'}
175
+ let(:converted) { 'https://gist.github.com/logicminds/f9b1ac65a3a440d562b0.txt' }
176
+ it do
177
+ expect(repl.convert_to_text(url)).to eq(converted)
178
+ end
179
+ end
180
+ end
181
+ end
182
+
71
183
  end