mirror of
https://gitea.invidious.io/iv-org/shard-spectator.git
synced 2024-08-15 00:53:35 +00:00
Reorganize some specs
This commit is contained in:
parent
36354082c7
commit
9d4a5886e5
5 changed files with 3 additions and 3 deletions
41
spec/features/aggregate_failures_spec.cr
Normal file
41
spec/features/aggregate_failures_spec.cr
Normal file
|
@ -0,0 +1,41 @@
|
|||
require "../spec_helper"
|
||||
|
||||
Spectator.describe Spectator do
|
||||
describe "aggregate_failures" do
|
||||
it "captures multiple failed expectations" do
|
||||
expect do
|
||||
aggregate_failures do
|
||||
expect(true).to be_false
|
||||
expect(false).to be_true
|
||||
end
|
||||
end.to raise_error(Spectator::MultipleExpectationsFailed, /2 failures/)
|
||||
end
|
||||
|
||||
it "raises normally for one failed expectation" do
|
||||
expect do
|
||||
aggregate_failures do
|
||||
expect(true).to be_false
|
||||
expect(true).to be_true
|
||||
end
|
||||
end.to raise_error(Spectator::ExpectationFailed)
|
||||
end
|
||||
|
||||
it "doesn't raise when there are no failed expectations" do
|
||||
expect do
|
||||
aggregate_failures do
|
||||
expect(false).to be_false
|
||||
expect(true).to be_true
|
||||
end
|
||||
end.to_not raise_error(Spectator::ExpectationFailed)
|
||||
end
|
||||
|
||||
it "supports naming the block" do
|
||||
expect do
|
||||
aggregate_failures "contradiction" do
|
||||
expect(true).to be_false
|
||||
expect(false).to be_true
|
||||
end
|
||||
end.to raise_error(Spectator::MultipleExpectationsFailed, /contradiction/)
|
||||
end
|
||||
end
|
||||
end
|
55
spec/features/concise_spec.cr
Normal file
55
spec/features/concise_spec.cr
Normal file
|
@ -0,0 +1,55 @@
|
|||
require "../spec_helper"
|
||||
|
||||
Spectator.describe Spectator do
|
||||
context "consice syntax" do
|
||||
describe "provided group with a single assignment" do
|
||||
provided x = 42 do
|
||||
expect(x).to eq(42)
|
||||
end
|
||||
end
|
||||
|
||||
describe "provided group with multiple assignments" do
|
||||
provided x = 42, y = 123 do
|
||||
expect(x).to eq(42)
|
||||
expect(y).to eq(123)
|
||||
end
|
||||
end
|
||||
|
||||
describe "provided group with a single named argument" do
|
||||
provided x: 42 do
|
||||
expect(x).to eq(42)
|
||||
end
|
||||
end
|
||||
|
||||
describe "provided group with multiple named arguments" do
|
||||
provided x: 42, y: 123 do
|
||||
expect(x).to eq(42)
|
||||
expect(y).to eq(123)
|
||||
end
|
||||
end
|
||||
|
||||
describe "provided group with mix of assignments and named arguments" do
|
||||
provided x = 42, y: 123 do
|
||||
expect(x).to eq(42)
|
||||
expect(y).to eq(123)
|
||||
end
|
||||
|
||||
provided x = 42, y = 123, z: 0, foo: "bar" do
|
||||
expect(x).to eq(42)
|
||||
expect(y).to eq(123)
|
||||
expect(z).to eq(0)
|
||||
expect(foo).to eq("bar")
|
||||
end
|
||||
end
|
||||
|
||||
describe "provided group with references to other arguments" do
|
||||
let(foo) { "bar" }
|
||||
|
||||
provided x = 3, y: x * 5, baz: foo.sub('r', 'z') do
|
||||
expect(x).to eq(3)
|
||||
expect(y).to eq(15)
|
||||
expect(baz).to eq("baz")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
31
spec/features/custom_message_spec.cr
Normal file
31
spec/features/custom_message_spec.cr
Normal file
|
@ -0,0 +1,31 @@
|
|||
require "../spec_helper"
|
||||
|
||||
Spectator.describe Spectator do
|
||||
it "supports custom expectation messages" do
|
||||
expect do
|
||||
expect(false).to be_true, "paradox!"
|
||||
end.to raise_error(Spectator::ExampleFailed, "paradox!")
|
||||
end
|
||||
|
||||
it "supports custom expectation messages with a proc" do
|
||||
count = 0
|
||||
expect do
|
||||
expect(false).to be_true, ->{ count += 1; "Failed #{count} times" }
|
||||
end.to raise_error(Spectator::ExampleFailed, "Failed 1 times")
|
||||
end
|
||||
|
||||
context "not_to" do
|
||||
it "supports custom expectation messages" do
|
||||
expect do
|
||||
expect(true).not_to be_true, "paradox!"
|
||||
end.to raise_error(Spectator::ExampleFailed, "paradox!")
|
||||
end
|
||||
|
||||
it "supports custom expectation messages with a proc" do
|
||||
count = 0
|
||||
expect do
|
||||
expect(true).not_to be_true, ->{ count += 1; "Failed #{count} times" }
|
||||
end.to raise_error(Spectator::ExampleFailed, "Failed 1 times")
|
||||
end
|
||||
end
|
||||
end
|
32
spec/features/line_number_spec.cr
Normal file
32
spec/features/line_number_spec.cr
Normal file
|
@ -0,0 +1,32 @@
|
|||
require "../spec_helper"
|
||||
|
||||
Spectator.describe Spectator do
|
||||
let(current_example) { ::Spectator::Example.current }
|
||||
subject(location) { current_example.location }
|
||||
|
||||
context "line numbers" do
|
||||
it "contains starting line of spec" do
|
||||
expect(location.line).to eq(__LINE__ - 1)
|
||||
end
|
||||
|
||||
it "contains ending line of spec" do
|
||||
expect(location.end_line).to eq(__LINE__ + 1)
|
||||
end
|
||||
|
||||
it "handles multiple lines and examples" do
|
||||
# Offset is important.
|
||||
expect(location.line).to eq(__LINE__ - 2)
|
||||
# This line fails, refer to https://github.com/crystal-lang/crystal/issues/10562
|
||||
# expect(location.end_line).to eq(__LINE__ + 2)
|
||||
# Offset is still important.
|
||||
end
|
||||
end
|
||||
|
||||
context "file names" do
|
||||
subject { location.file }
|
||||
|
||||
it "match source code" do
|
||||
is_expected.to eq(__FILE__)
|
||||
end
|
||||
end
|
||||
end
|
23
spec/features/subject_spec.cr
Normal file
23
spec/features/subject_spec.cr
Normal file
|
@ -0,0 +1,23 @@
|
|||
require "../spec_helper"
|
||||
|
||||
class Base; end
|
||||
|
||||
module SomeModule; end
|
||||
|
||||
Spectator.describe "Subject" do
|
||||
subject { Base.new }
|
||||
|
||||
context "nested" do
|
||||
it "inherits the parent explicit subject" do
|
||||
expect(subject).to be_a(Base)
|
||||
end
|
||||
end
|
||||
|
||||
context "module" do
|
||||
describe SomeModule do
|
||||
it "sets the implicit subject to the module" do
|
||||
expect(subject).to be(SomeModule)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue