mirror of
https://gitea.invidious.io/iv-org/shard-spectator.git
synced 2024-08-15 00:53:35 +00:00
Add specs for value types
This commit is contained in:
parent
7d5c9edab7
commit
4af23751bc
2 changed files with 33 additions and 0 deletions
15
spec/spectator/lazy_spec.cr
Normal file
15
spec/spectator/lazy_spec.cr
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
require "../spec_helper"
|
||||||
|
|
||||||
|
Spectator.describe Spectator::Lazy do
|
||||||
|
subject { Spectator::Lazy(Int32).new }
|
||||||
|
|
||||||
|
it "returns the value of the block" do
|
||||||
|
expect { subject.get { 42 } }.to eq(42)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "caches the value" do
|
||||||
|
count = 0
|
||||||
|
expect { subject.get { count += 1 } }.to change { count }.from(0).to(1)
|
||||||
|
expect { subject.get { count += 1 } }.to_not change { count }
|
||||||
|
end
|
||||||
|
end
|
18
spec/spectator/wrapper_spec.cr
Normal file
18
spec/spectator/wrapper_spec.cr
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
require "../spec_helper"
|
||||||
|
|
||||||
|
Spectator.describe Spectator::Wrapper do
|
||||||
|
it "stores a value" do
|
||||||
|
wrapper = described_class.new(42)
|
||||||
|
expect(wrapper.get(Int32)).to eq(42)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "retrieves a value using the block trick" do
|
||||||
|
wrapper = described_class.new(Int32)
|
||||||
|
expect(wrapper.get { Int32 }).to eq(Int32)
|
||||||
|
end
|
||||||
|
|
||||||
|
it "raises on invalid cast" do
|
||||||
|
wrapper = described_class.new(42)
|
||||||
|
expect { wrapper.get(String) }.to raise_error(TypeCastError)
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue