X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Fstdlib%2Fspec%2Facceptance%2Fparsejson_spec.rb;h=8a19907dcd74755cb3bd5c51e60f5563936ae702;hb=6f656bd4265e3dab13b9af2bf96e9044322e9d8f;hp=509781027269edbbe6e0a16d0b631e897fafa788;hpb=ad88f67c13ae0f1a08936dad643f1e3509ab5f40;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/stdlib/spec/acceptance/parsejson_spec.rb b/3rdparty/modules/stdlib/spec/acceptance/parsejson_spec.rb old mode 100755 new mode 100644 index 509781027..8a19907dc --- a/3rdparty/modules/stdlib/spec/acceptance/parsejson_spec.rb +++ b/3rdparty/modules/stdlib/spec/acceptance/parsejson_spec.rb @@ -1,34 +1,50 @@ -#! /usr/bin/env ruby -S rspec require 'spec_helper_acceptance' -describe 'parsejson function', :unless => UNSUPPORTED_PLATFORMS.include?(fact('operatingsystem')) do +describe 'parsejson function' do describe 'success' do - it 'parses valid json' do - pp = <<-EOS + pp1 = <<-DOC $a = '{"hunter": "washere", "tests": "passing"}' $ao = parsejson($a) $tests = $ao['tests'] notice(inline_template('tests are <%= @tests.inspect %>')) - EOS - - apply_manifest(pp, :catch_failures => true) do |r| - expect(r.stdout).to match(/tests are "passing"/) + DOC + it 'parses valid json' do + apply_manifest(pp1, :catch_failures => true) do |r| + expect(r.stdout).to match(%r{tests are "passing"}) end end end + describe 'failure' do - it 'raises error on incorrect json' do - pp = <<-EOS + pp2 = <<-DOC $a = '{"hunter": "washere", "tests": "passing",}' - $ao = parsejson($a) + $ao = parsejson($a, 'tests are using the default value') notice(inline_template('a is <%= @ao.inspect %>')) - EOS + DOC + it 'raises error on incorrect json - default value is used' do + apply_manifest(pp2, :catch_failures => true) do |r| + expect(r.stdout).to match(%r{tests are using the default value}) + end + end - apply_manifest(pp, :expect_failures => true) do |r| - expect(r.stderr).to match(/expected next name/) + pp3 = <<-DOC + $a = '{"hunter": "washere", "tests": "passing",}' + $ao = parsejson($a) + notice(inline_template('a is <%= @ao.inspect %>')) + DOC + it 'raises error on incorrect json' do + apply_manifest(pp3, :expect_failures => true) do |r| + expect(r.stderr).to match(%r{expected next name}) end end - it 'raises error on incorrect number of arguments' + pp4 = <<-DOC + $o = parsejson() + DOC + it 'raises error on incorrect number of arguments' do + apply_manifest(pp4, :expect_failures => true) do |r| + expect(r.stderr).to match(%r{wrong number of arguments}i) + end + end end end