Intercept most exit calls and raise instead

This commit is contained in:
Michael Miller 2022-07-12 23:02:20 -06:00
parent 3c9c7f88be
commit 754bfd6939
No known key found for this signature in database
GPG key ID: 32B47AE8F388A1FF
4 changed files with 43 additions and 15 deletions

View file

@ -7,14 +7,9 @@ Spectator.describe "GitHub Issue #29" do
end
end
# mock SomeClass do
# inject_stub abstract def exit(code)
# end
describe SomeClass do
xit "captures exit", pending: "Mock redesign" do
expect(subject).to receive(:exit).with(0)
subject.goodbye
it "captures exit" do
expect { subject.goodbye }.to raise_error(Spectator::SystemExit)
end
end
@ -25,16 +20,10 @@ Spectator.describe "GitHub Issue #29" do
end
end
# mock Foo do
# inject_stub abstract def self.exit(code)
# end
subject { Foo }
xit "must capture exit", pending: "Mock redesign" do
expect(subject).to receive(:exit).with(0)
subject.test
it "must capture exit" do
expect { subject.test }.to raise_error(Spectator::SystemExit)
end
end
end

View file

@ -0,0 +1,13 @@
require "../spec_helper"
Spectator.describe Spectator::SystemExit do
it "is raised when an attempt is made to exit the application" do
expect { exit }.to raise_error(described_class)
end
it "has the status code passed to an exit call" do
exit 5
rescue error : Spectator::SystemExit
expect(error.status).to eq(5)
end
end