diff --git a/spec/rspec/expectations/cover_matcher_spec.cr b/spec/rspec/expectations/cover_matcher_spec.cr new file mode 100644 index 0000000..fb1a74a --- /dev/null +++ b/spec/rspec/expectations/cover_matcher_spec.cr @@ -0,0 +1,30 @@ +require "../../spec_helper" + +# Examples taken from: +# https://relishapp.com/rspec/rspec-expectations/v/3-8/docs/built-in-matchers/cover-matcher +# and modified to fit Spectator and Crystal. +Spectator.describe "`cover` matcher" do + context "range usage" do + describe (1..10) do + it { is_expected.to cover(4) } + it { is_expected.to cover(6) } + it { is_expected.to cover(8) } + it { is_expected.to cover(4, 6) } + it { is_expected.to cover(4, 6, 8) } + it { is_expected.not_to cover(11) } + it { is_expected.not_to cover(11, 12) } + + # deliberate failures + # TODO: Add support for expected failures. + xit { is_expected.to cover(11) } + xit { is_expected.not_to cover(4) } + xit { is_expected.not_to cover(6) } + xit { is_expected.not_to cover(8) } + xit { is_expected.not_to cover(4, 6, 8) } + + # both of these should fail since it covers 5 but not 11 + xit { is_expected.to cover(5, 11) } + xit { is_expected.not_to cover(5, 11) } + end + end +end