diff --git a/lib/quickdraw/test.rb b/lib/quickdraw/test.rb index 94ba6c4..0c7720f 100644 --- a/lib/quickdraw/test.rb +++ b/lib/quickdraw/test.rb @@ -49,8 +49,16 @@ def assert(value) nil end - def refute(value, ...) - assert(!value, ...) + def refute(value) + if !value + success! + elsif block_given? + failure! { yield(value) } + else + failure! { "expected #{value.inspect} to be falsy" } + end + + nil end # Indicate that an assertion passed successfully. diff --git a/test/quickdraw.test.rb b/test/quickdraw.test.rb index af68a27..08470ce 100644 --- a/test/quickdraw.test.rb +++ b/test/quickdraw.test.rb @@ -15,3 +15,17 @@ test "refute", skip: true do refute true end + +test "refute custom message" do + runner = assert_test(failures: 1) do + refute(32) { |val| "#{val} not falsy" } + end + assert_equal runner.failures.last["message"], "32 not falsy" +end + +test "refute default message" do + runner = assert_test(failures: 1) do + refute 32 + end + assert_equal runner.failures.last["message"], "expected 32 to be falsy" +end