X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=3rdparty%2Fmodules%2Fstdlib%2Fspec%2Ffunctions%2Fchomp_spec.rb;h=2137c616626e73e5cf794bf2fe5df69692750e61;hb=30caaa85aed7015ca0d77216bff175eebd917eb7;hp=b1e1e60f35e21249705a3294744d64cf199d4c59;hpb=ad88f67c13ae0f1a08936dad643f1e3509ab5f40;p=mirror%2Fdsa-puppet.git diff --git a/3rdparty/modules/stdlib/spec/functions/chomp_spec.rb b/3rdparty/modules/stdlib/spec/functions/chomp_spec.rb old mode 100755 new mode 100644 index b1e1e60f3..2137c6166 --- a/3rdparty/modules/stdlib/spec/functions/chomp_spec.rb +++ b/3rdparty/modules/stdlib/spec/functions/chomp_spec.rb @@ -1,28 +1,27 @@ -#! /usr/bin/env ruby -S rspec require 'spec_helper' -describe "the chomp function" do - let(:scope) { PuppetlabsSpec::PuppetInternals.scope } +describe 'chomp', :if => Puppet::Util::Package.versioncmp(Puppet.version, '6.0.0') < 0 do + it { is_expected.not_to eq(nil) } + it { is_expected.to run.with_params.and_raise_error(Puppet::ParseError, %r{Wrong number of arguments given}) } + it { is_expected.to run.with_params(1).and_raise_error(Puppet::ParseError, %r{Requires either array or string}) } + it { + pending('Current implementation ignores parameters after the first.') + is_expected.to run.with_params('a', 'b').and_raise_error(Puppet::ParseError) + } + it { is_expected.to run.with_params('one').and_return('one') } + it { is_expected.to run.with_params("one\n").and_return('one') } + it { is_expected.to run.with_params("one\n\n").and_return("one\n") } + it { is_expected.to run.with_params(["one\n", 'two', "three\n"]).and_return(['one', 'two', 'three']) } - it "should exist" do - expect(Puppet::Parser::Functions.function("chomp")).to eq("function_chomp") - end - - it "should raise a ParseError if there is less than 1 arguments" do - expect { scope.function_chomp([]) }.to( raise_error(Puppet::ParseError)) - end - - it "should chomp the end of a string" do - result = scope.function_chomp(["abc\n"]) - expect(result).to(eq("abc")) - end + it { is_expected.to run.with_params(AlsoString.new('one')).and_return('one') } + it { is_expected.to run.with_params(AlsoString.new("one\n")).and_return('one') } + it { is_expected.to run.with_params(AlsoString.new("one\n\n")).and_return("one\n") } + it { is_expected.to run.with_params([AlsoString.new("one\n"), AlsoString.new('two'), "three\n"]).and_return(['one', 'two', 'three']) } - it "should accept objects which extend String" do - class AlsoString < String - end + it { is_expected.to run.with_params([1, 2, 3]).and_return([1, 2, 3]) } - value = AlsoString.new("abc\n") - result = scope.function_chomp([value]) - result.should(eq("abc")) + context 'with UTF8 and double byte characters' do + it { is_expected.to run.with_params("ůťƒ8\n\n").and_return("ůťƒ8\n") } + it { is_expected.to run.with_params("ネット\n\n").and_return("ネット\n") } end end