From 3207b7c8d23f5764d2ffe52c66eb6b32c3f9f6e9 Mon Sep 17 00:00:00 2001 From: Michael Miller Date: Mon, 26 Nov 2018 14:21:43 -0700 Subject: [PATCH] Add tests for hooks --- spec/pending_example_spec.cr | 45 ++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/spec/pending_example_spec.cr b/spec/pending_example_spec.cr index 2db5a5b..0ab90ec 100644 --- a/spec/pending_example_spec.cr +++ b/spec/pending_example_spec.cr @@ -10,11 +10,56 @@ def new_pending_example(group : Spectator::ExampleGroup? = nil) ConcretePendingExample.new(group || new_root_group, Spectator::Internals::SampleValues.empty) end +def new_pending_example_with_hooks(hooks) + group = new_root_group(hooks) + new_pending_example(group) +end + describe Spectator::PendingExample do describe "#run" do it "returns a pending result" do new_pending_example.run.should be_a(Spectator::PendingResult) end + + it "doesn't run before_all hooks" do + called = false + hooks = new_hooks(before_all: ->{ called = true; nil }) + example = new_pending_example_with_hooks(hooks) + Spectator::Internals::Harness.run(example) + called.should be_false + end + + it "doesn't run before_each hooks" do + called = false + hooks = new_hooks(before_each: ->{ called = true; nil }) + example = new_pending_example_with_hooks(hooks) + Spectator::Internals::Harness.run(example) + called.should be_false + end + + it "doesn't run after_all hooks" do + called = false + hooks = new_hooks(after_all: ->{ called = true; nil }) + example = new_pending_example_with_hooks(hooks) + Spectator::Internals::Harness.run(example) + called.should be_false + end + + it "doesn't run after_each hooks" do + called = false + hooks = new_hooks(after_each: ->{ called = true; nil }) + example = new_pending_example_with_hooks(hooks) + Spectator::Internals::Harness.run(example) + called.should be_false + end + + it "doesn't run around_each hooks" do + called = false + hooks = new_hooks(around_each: ->(proc : ->) { called = true; proc.call }) + example = new_pending_example_with_hooks(hooks) + Spectator::Internals::Harness.run(example) + called.should be_false + end end describe "#finished?" do