Skip to content

Commit

Permalink
(MODULES-1582) Specs for the new % placeholder
Browse files Browse the repository at this point in the history
These specs are pretty much the same as the originals, but now check that the output has the correct replacement for file location
  • Loading branch information
Peter Souter committed Dec 18, 2014
1 parent 165caa8 commit cc8b147
Showing 1 changed file with 59 additions and 22 deletions.
81 changes: 59 additions & 22 deletions spec/functions/validate_cmd_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,37 +12,74 @@
scope.method(function_name)
end

describe "with an explicit failure message" do
it "prints the failure message on error" do
expect {
subject.call ['', '/bin/false', 'failure message!']
}.to raise_error Puppet::ParseError, /failure message!/
context 'with no % placeholder' do
describe "with an explicit failure message" do
it "prints the failure message on error" do
expect {
subject.call ['', '/bin/false', 'failure message!']
}.to raise_error Puppet::ParseError, /failure message!/
end
end
end

describe "on validation failure" do
it "includes the command error output" do
expect {
subject.call ['', "#{TOUCHEXE} /cant/touch/this"]
}.to raise_error Puppet::ParseError, /(cannot touch|o such file or)/
describe "on validation failure" do
it "includes the command error output" do
expect {
subject.call ['', "#{TOUCHEXE} /cant/touch/this"]
}.to raise_error Puppet::ParseError, /(cannot touch|o such file or)/
end

it "includes the command return value" do
expect {
subject.call ['', '/cant/run/this']
}.to raise_error Puppet::ParseError, /returned 1\b/
end
end

it "includes the command return value" do
expect {
subject.call ['', '/cant/run/this']
}.to raise_error Puppet::ParseError, /returned 1\b/
describe "when performing actual validation" do
it "can positively validate file content" do
expect { subject.call ["non-empty", "#{TESTEXE} -s"] }.to_not raise_error
end

it "can negatively validate file content" do
expect {
subject.call ["", "#{TESTEXE} -s"]
}.to raise_error Puppet::ParseError, /failed to validate.*test -s/
end
end
end

describe "when performing actual validation" do
it "can positively validate file content" do
expect { subject.call ["non-empty", "#{TESTEXE} -s"] }.to_not raise_error
context 'with % placeholder' do
describe "with an explicit failure message" do
it "prints the failure message on error" do
expect {
subject.call ['', '/bin/false % -f', 'failure message!']
}.to raise_error Puppet::ParseError, /failure message!/
end
end
describe "on validation failure" do
it "includes the command error output" do
expect {
subject.call ['', "#{TOUCHEXE} /cant/touch/this"]
}.to raise_error Puppet::ParseError, /(cannot touch|o such file or)/
end

it "includes the command return value" do
expect {
subject.call ['', '/cant/run/this % -z']
}.to raise_error Puppet::ParseError, /Execution of '\/cant\/run\/this .+ -z' returned 1/
end
end

describe "when performing actual validation" do
it "can positively validate file content" do
expect { subject.call ["non-empty", "#{TESTEXE} -s %"] }.to_not raise_error
end

it "can negatively validate file content" do
expect {
subject.call ["", "#{TESTEXE} -s"]
}.to raise_error Puppet::ParseError, /failed to validate.*test -s/
it "can negatively validate file content" do
expect {
subject.call ["", "#{TESTEXE} -s %"]
}.to raise_error Puppet::ParseError, /failed to validate.*test -s/
end
end
end
end

0 comments on commit cc8b147

Please sign in to comment.