Add tests for Result#call implementations

This commit is contained in:
Michael Miller 2019-02-17 14:40:05 -07:00
parent 75f9a5838b
commit 6a8d447570
5 changed files with 70 additions and 0 deletions

View file

@ -15,6 +15,21 @@ def new_errored_result(
end
describe Spectator::ErroredResult do
describe "#call" do
it "invokes #error on an instance" do
spy = ResultCallSpy.new
new_errored_result.call(spy)
spy.error?.should be_truthy
end
it "passes itself" do
spy = ResultCallSpy.new
result = new_errored_result
result.call(spy)
spy.error.should eq(result)
end
end
describe "#example" do
it "is the expected value" do
example = FailingExample.create

View file

@ -15,6 +15,21 @@ def new_failed_result(
end
describe Spectator::FailedResult do
describe "#call" do
it "invokes #failure on an instance" do
spy = ResultCallSpy.new
new_failed_result.call(spy)
spy.failure?.should be_truthy
end
it "passes itself" do
spy = ResultCallSpy.new
result = new_failed_result
result.call(spy)
spy.failure.should eq(result)
end
end
describe "#example" do
it "is the expected value" do
example = FailingExample.create

View file

@ -0,0 +1,10 @@
# Spy class for testing `Spectator::Result#call`.
class ResultCallSpy
{% for name in %i[success failure error pending] %}
getter! {{name.id}} : ::Spectator::Result
def {{name.id}}(arg)
@{{name.id}} = arg
end
{% end %}
end

View file

@ -5,6 +5,21 @@ def new_pending_result(example : Spectator::Example? = nil)
end
describe Spectator::PendingResult do
describe "#call" do
it "invokes #pending on an instance" do
spy = ResultCallSpy.new
new_pending_result.call(spy)
spy.pending?.should be_truthy
end
it "passes itself" do
spy = ResultCallSpy.new
result = new_pending_result
result.call(spy)
spy.pending.should eq(result)
end
end
describe "#example" do
it "is the expected value" do
example = PassingExample.create

View file

@ -13,6 +13,21 @@ def new_successful_result(
end
describe Spectator::SuccessfulResult do
describe "#call" do
it "invokes #success on an instance" do
spy = ResultCallSpy.new
new_successful_result.call(spy)
spy.success?.should be_truthy
end
it "passes itself" do
spy = ResultCallSpy.new
result = new_successful_result
result.call(spy)
spy.success.should eq(result)
end
end
describe "#example" do
it "is the expected value" do
example = PassingExample.create