invidious/lib/db/spec/disposable_spec.cr
Leon Klingele 40fb17791e
shard: track dependencies
Commit the whole ./lib/ folder which stores the Crystal dependencies.
This has a few benefits:

- Allows to build the project without a connection to the Internet
  to retrieve dependencies.
- Makes the project resistant against dependency re-tags which might
  include malicious code.
2019-08-15 01:51:27 +02:00

32 lines
595 B
Crystal

require "./spec_helper"
class ADisposable
include DB::Disposable
@raise = false
property raise
protected def do_close
raise "Unable to close" if @raise
end
end
describe DB::Disposable do
it "should mark as closed if able to close" do
obj = ADisposable.new
obj.closed?.should be_false
obj.close
obj.closed?.should be_true
end
it "should not mark as closed if unable to close" do
obj = ADisposable.new
obj.raise = true
obj.closed?.should be_false
expect_raises Exception do
obj.close
end
obj.closed?.should be_false
end
end