]> git.donarmstrong.com Git - dsa-puppet.git/blob - 3rdparty/modules/stdlib/spec/acceptance/parsejson_spec.rb
upgrade to stdlib 4.6.1
[dsa-puppet.git] / 3rdparty / modules / stdlib / spec / acceptance / parsejson_spec.rb
1 #! /usr/bin/env ruby -S rspec
2 require 'spec_helper_acceptance'
3
4 describe 'parsejson function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do
5   describe 'success' do
6     it 'parses valid json' do
7       pp = <<-EOS
8       $a = '{"hunter": "washere", "tests": "passing"}'
9       $ao = parsejson($a)
10       $tests = $ao['tests']
11       notice(inline_template('tests are <%= @tests.inspect %>'))
12       EOS
13
14       apply_manifest(pp, :catch_failures => true) do |r|
15         expect(r.stdout).to match(/tests are "passing"/)
16       end
17     end
18   end
19   describe 'failure' do
20     it 'raises error on incorrect json' do
21       pp = <<-EOS
22       $a = '{"hunter": "washere", "tests": "passing",}'
23       $ao = parsejson($a)
24       notice(inline_template('a is <%= @ao.inspect %>'))
25       EOS
26
27       apply_manifest(pp, :expect_failures => true) do |r|
28         expect(r.stderr).to match(/expected next name/)
29       end
30     end
31
32     it 'raises error on incorrect number of arguments'
33   end
34 end