shard-spectator/spec/pending_example_spec.cr
2019-02-17 12:40:16 -07:00

118 lines
3 KiB
Crystal

require "./spec_helper"
class ConcretePendingExample < Spectator::PendingExample
def what
"PENDING_TEST_EXAMPLE"
end
def source
::Spectator::Source.new(__FILE__, __LINE__)
end
def instance
nil
end
end
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
it "is initially false" do
new_pending_example.finished?.should be_false
end
it "is true after #run is called" do
example = new_pending_example
Spectator::Internals::Harness.run(example)
example.finished?.should be_true
end
end
describe "#group" do
it "is the expected value" do
group = new_root_group
example = new_pending_example(group)
example.group.should eq(group)
end
end
describe "#example_count" do
it "is one" do
new_pending_example.example_count.should eq(1)
end
end
describe "#[]" do
it "returns self" do
example = new_pending_example
example[0].should eq(example)
end
end
describe "#to_s" do
it "contains #what" do
example = new_pending_example
example.to_s.should contain(example.what)
end
it "contains the group's #what" do
group = new_nested_group
example = new_pending_example(group)
example.to_s.should contain(group.what)
end
end
end