Specify skip reason

This commit is contained in:
Michael Miller 2021-06-11 19:30:23 -06:00
parent a061bd2044
commit dcdc64e134
No known key found for this signature in database
GPG key ID: FB9F12F7C646A4AD
8 changed files with 50 additions and 61 deletions

View file

@ -21,17 +21,15 @@ Spectator.describe "`all` matcher" do
# Changed `include` to `contain` to match our own.
# `include` is a keyword and can't be used as a method name in Crystal.
# TODO: Add support for compound matchers.
describe ["anything", "everything", "something"] do
xit { is_expected.to all(be_a(String)) } # .and contain("thing") ) }
xit { is_expected.to all(be_a(String)) } # .and end_with("g") ) }
xit { is_expected.to all(start_with("s")) } # .or contain("y") ) }
skip reason: "Add support for compound matchers." { is_expected.to all(be_a(String).and contain("thing")) }
skip reason: "Add support for compound matchers." { is_expected.to all(be_a(String).and end_with("g")) }
skip reason: "Add support for compound matchers." { is_expected.to all(start_with("s").or contain("y")) }
# deliberate failures
# TODO: Add support for compound matchers.
xit { is_expected.to all(contain("foo")) } # .and contain("bar") ) }
xit { is_expected.to all(be_a(String)) } # .and start_with("a") ) }
xit { is_expected.to all(start_with("a")) } # .or contain("z") ) }
skip reason: "Add support for compound matchers." { is_expected.to all(contain("foo").and contain("bar")) }
skip reason: "Add support for compound matchers." { is_expected.to all(be_a(String).and start_with("a")) }
skip reason: "Add support for compound matchers." { is_expected.to all(start_with("a").or contain("z")) }
end
end
end

View file

@ -12,16 +12,14 @@ Spectator.describe "`contain` matcher" do
it { is_expected.to contain(1, 7) }
it { is_expected.to contain(1, 3, 7) }
# Utility matcher method `a_kind_of` is not supported.
# it { is_expected.to contain(a_kind_of(Int)) }
skip reason: "Utility matcher method `a_kind_of` is not supported." { is_expected.to contain(a_kind_of(Int)) }
# TODO: Compound matchers aren't supported.
# it { is_expected.to contain(be_odd.and be < 10) }
skip reason: "Compound matchers aren't supported." { is_expected.to contain(be_odd.and be < 10) }
# TODO: Fix behavior and cleanup output.
# This syntax is allowed, but produces a wrong result and bad output.
xit { is_expected.to contain(be_odd) }
xit { is_expected.not_to contain(be_even) }
skip reason: "Fix behavior and cleanup output." { is_expected.to contain(be_odd) }
skip reason: "Fix behavior and cleanup output." { is_expected.not_to contain(be_even) }
it { is_expected.not_to contain(17) }
it { is_expected.not_to contain(43, 100) }
@ -62,35 +60,31 @@ Spectator.describe "`contain` matcher" do
subject { {:a => 7, :b => 5} }
# Hash syntax is changed here from `:a => 7` to `a: 7`.
# it { is_expected.to contain(:a) }
# it { is_expected.to contain(:b, :a) }
# TODO: This hash-like syntax isn't supported.
# it { is_expected.to contain(a: 7) }
# it { is_expected.to contain(b: 5, a: 7) }
# it { is_expected.not_to contain(:c) }
# it { is_expected.not_to contain(:c, :d) }
# it { is_expected.not_to contain(d: 2) }
# it { is_expected.not_to contain(a: 5) }
# it { is_expected.not_to contain(b: 7, a: 5) }
skip reason: "This hash-like syntax isn't supported." { is_expected.to contain(a: 7) }
skip reason: "This hash-like syntax isn't supported." { is_expected.to contain(b: 5, a: 7) }
skip reason: "This hash-like syntax isn't supported." { is_expected.not_to contain(:c) }
skip reason: "This hash-like syntax isn't supported." { is_expected.not_to contain(:c, :d) }
skip reason: "This hash-like syntax isn't supported." { is_expected.not_to contain(d: 2) }
skip reason: "This hash-like syntax isn't supported." { is_expected.not_to contain(a: 5) }
skip reason: "This hash-like syntax isn't supported." { is_expected.not_to contain(b: 7, a: 5) }
# deliberate failures
# it { is_expected.not_to contain(:a) }
# it { is_expected.not_to contain(:b, :a) }
# it { is_expected.not_to contain(a: 7) }
# it { is_expected.not_to contain(a: 7, b: 5) }
# it { is_expected.to contain(:c) }
# it { is_expected.to contain(:c, :d) }
# it { is_expected.to contain(d: 2) }
# it { is_expected.to contain(a: 5) }
# it { is_expected.to contain(a: 5, b: 7) }
skip reason: "This hash-like syntax isn't supported." { is_expected.not_to contain(:a) }
skip reason: "This hash-like syntax isn't supported." { is_expected.not_to contain(:b, :a) }
skip reason: "This hash-like syntax isn't supported." { is_expected.not_to contain(a: 7) }
skip reason: "This hash-like syntax isn't supported." { is_expected.not_to contain(a: 7, b: 5) }
skip reason: "This hash-like syntax isn't supported." { is_expected.to contain(:c) }
skip reason: "This hash-like syntax isn't supported." { is_expected.to contain(:c, :d) }
skip reason: "This hash-like syntax isn't supported." { is_expected.to contain(d: 2) }
skip reason: "This hash-like syntax isn't supported." { is_expected.to contain(a: 5) }
skip reason: "This hash-like syntax isn't supported." { is_expected.to contain(a: 5, b: 7) }
# Mixed cases--the hash contains one but not the other.
# All 4 of these cases should fail.
# it { is_expected.to contain(:a, :d) }
# it { is_expected.not_to contain(:a, :d) }
# it { is_expected.to contain(a: 7, d: 3) }
# it { is_expected.not_to contain(a: 7, d: 3) }
skip reason: "This hash-like syntax isn't supported." { is_expected.to contain(:a, :d) }
skip reason: "This hash-like syntax isn't supported." { is_expected.not_to contain(:a, :d) }
skip reason: "This hash-like syntax isn't supported." { is_expected.to contain(a: 7, d: 3) }
skip reason: "This hash-like syntax isn't supported." { is_expected.not_to contain(a: 7, d: 3) }
end
end
end

View file

@ -18,10 +18,9 @@ Spectator.describe "`end_with` matcher" do
context "array usage" do
describe [0, 1, 2, 3, 4] do
it { is_expected.to end_with 4 }
# TODO: Add support for multiple items at the end of an array.
# it { is_expected.to end_with 3, 4 }
skip reason: "Add support for multiple items at the end of an array." { is_expected.to end_with 3, 4 }
it { is_expected.not_to end_with 3 }
# it { is_expected.not_to end_with 0, 1, 2, 3, 4, 5 }
skip reason: "Add support for multiple items at the end of an array." { is_expected.not_to end_with 0, 1, 2, 3, 4, 5 }
# deliberate failures
it_fails { is_expected.not_to end_with 4 }

View file

@ -14,14 +14,14 @@ Spectator.describe "`have_attributes` matcher" do
# Spectator doesn't support helper matchers like `a_string_starting_with` and `a_value <`.
# But maybe in the future it will.
it { is_expected.to have_attributes(name: "Jim") }
# it { is_expected.to have_attributes(name: a_string_starting_with("J") ) }
skip reason: "Add support for fuzzy matchers." { is_expected.to have_attributes(name: a_string_starting_with("J")) }
it { is_expected.to have_attributes(age: 32) }
# it { is_expected.to have_attributes(age: (a_value > 30) ) }
skip reason: "Add support for fuzzy matchers." { is_expected.to have_attributes(age: (a_value > 30)) }
it { is_expected.to have_attributes(name: "Jim", age: 32) }
# it { is_expected.to have_attributes(name: a_string_starting_with("J"), age: (a_value > 30) ) }
skip reason: "Add support for fuzzy matchers." { is_expected.to have_attributes(name: a_string_starting_with("J"), age: (a_value > 30)) }
it { is_expected.not_to have_attributes(name: "Bob") }
it { is_expected.not_to have_attributes(age: 10) }
# it { is_expected.not_to have_attributes(age: (a_value < 30) ) }
skip reason: "Add support for fuzzy matchers." { is_expected.not_to have_attributes(age: (a_value < 30)) }
# deliberate failures
it_fails { is_expected.to have_attributes(name: "Bob") }

View file

@ -75,14 +75,13 @@ Spectator.describe "`raise_error` matcher" do
end
end
# TODO: Support passing a block to `raise_error` matcher.
# context "set expectations on error object passed to block" do
# it "raises DivisionByZeroError" do
# expect { 42 // 0 }.to raise_error do |error|
# expect(error).to be_a(DivisionByZeroError)
# end
# end
# end
context "set expectations on error object passed to block" do
skip "raises DivisionByZeroError", reason: "Support passing a block to `raise_error` matcher." do
expect { 42 // 0 }.to raise_error do |error|
expect(error).to be_a(DivisionByZeroError)
end
end
end
context "expect no error at all" do
describe "#to_s" do

View file

@ -18,10 +18,9 @@ Spectator.describe "`start_with` matcher" do
context "with an array" do
describe [0, 1, 2, 3, 4] do
it { is_expected.to start_with 0 }
# TODO: Add support for multiple items at the beginning of an array.
# it { is_expected.to start_with(0, 1) }
skip reason: "Add support for multiple items at the beginning of an array." { is_expected.to start_with(0, 1) }
it { is_expected.not_to start_with(2) }
# it { is_expected.not_to start_with(0, 1, 2, 3, 4, 5) }
skip reason: "Add support for multiple items at the beginning of an array." { is_expected.not_to start_with(0, 1, 2, 3, 4, 5) }
# deliberate failures
it_fails { is_expected.not_to start_with 0 }