pick_spec.rb 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. require 'spec_helper_acceptance'
  2. describe 'pick function' do
  3. describe 'success' do
  4. pp1 = <<-DOC
  5. $a = undef
  6. $o = pick($a, 'default')
  7. notice(inline_template('picked is <%= @o.inspect %>'))
  8. DOC
  9. it 'picks a default value' do
  10. apply_manifest(pp1, :catch_failures => true) do |r|
  11. expect(r.stdout).to match(%r{picked is "default"})
  12. end
  13. end
  14. pp2 = <<-DOC
  15. $a = "something"
  16. $b = "long"
  17. $o = pick($a, $b, 'default')
  18. notice(inline_template('picked is <%= @o.inspect %>'))
  19. DOC
  20. it 'picks the first set value' do
  21. apply_manifest(pp2, :catch_failures => true) do |r|
  22. expect(r.stdout).to match(%r{picked is "something"})
  23. end
  24. end
  25. end
  26. describe 'failure' do
  27. pp3 = <<-DOC
  28. $a = undef
  29. $b = undef
  30. $o = pick($a, $b)
  31. notice(inline_template('picked is <%= @o.inspect %>'))
  32. DOC
  33. it 'raises error with all undef values' do
  34. apply_manifest(pp3, :expect_failures => true) do |r|
  35. expect(r.stderr).to match(%r{must receive at least one non empty value})
  36. end
  37. end
  38. end
  39. end