From 75ccda0a86fcf239479870f756a33054cc87e912 Mon Sep 17 00:00:00 2001 From: Michael Miller Date: Sat, 5 Mar 2022 15:39:35 -0700 Subject: [PATCH] Test responses on inherited methods --- spec/spectator/mocks/double_spec.cr | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/spec/spectator/mocks/double_spec.cr b/spec/spectator/mocks/double_spec.cr index ec5161f..fb57d2d 100644 --- a/spec/spectator/mocks/double_spec.cr +++ b/spec/spectator/mocks/double_spec.cr @@ -140,5 +140,22 @@ Spectator.describe Spectator::Double do it "raises an error when argument count doesn't match" do expect { dbl.foo }.to raise_error(Spectator::UnexpectedMessage) end + + context "with common object methods" do + let(response) { Spectator::Response.new(:"same?", true, arguments).as(Spectator::AbstractResponse) } + subject(dbl) { Spectator::Double({"same?": Bool}).new([response]) } + + it "returns the response when constraint satisfied" do + expect(dbl.same?("foobar")).to eq(true) + end + + it "raises an error when constraint unsatisfied" do + expect { dbl.same?("baz") }.to raise_error(Spectator::UnexpectedMessage, /mask/) + end + + it "raises an error when argument count doesn't match" do + expect { dbl.same? }.to raise_error(Spectator::UnexpectedMessage) + end + end end end