spec/percy/cli/snapshot_spec.rb in percy-cli-0.2.6 vs spec/percy/cli/snapshot_spec.rb in percy-cli-0.3.0
- old
+ new
@@ -3,10 +3,44 @@
RSpec.describe Percy::Cli::Snapshot do
let(:root_dir) { File.expand_path('../testdata/', __FILE__) }
describe '#run_snapshot' do
xit 'snapshots a root directory of static files' do
- # TODO(fotinakis): tests for this.
+ # TODO(fotinakis): tests for the full flow.
+ end
+ end
+ describe '#rescue_connection_failures' do
+ let(:cli) { Percy::Cli.new }
+ it 'returns block result on success' do
+ result = cli.send(:rescue_connection_failures) do
+ true
+ end
+ expect(result).to eq(true)
+ expect(cli.send(:failed?)).to eq(false)
+ end
+ it 'makes block safe from HttpError' do
+ result = cli.send(:rescue_connection_failures) do
+ raise Percy::Client::HttpError.new(500, 'POST', '', '')
+ end
+ expect(result).to eq(nil)
+ expect(cli.send(:failed?)).to eq(true)
+ end
+ it 'makes block safe from ConnectionFailed' do
+ result = cli.send(:rescue_connection_failures) do
+ raise Percy::Client::ConnectionFailed
+ end
+ expect(result).to eq(nil)
+ expect(cli.send(:failed?)).to eq(true)
+ end
+ it 'makes block safe from TimeoutError' do
+ result = cli.send(:rescue_connection_failures) do
+ raise Percy::Client::TimeoutError
+ end
+ expect(result).to eq(nil)
+ expect(cli.send(:failed?)).to eq(true)
+ end
+ it 'requires a block' do
+ expect { cli.send(:rescue_connection_failures) }.to raise_error(ArgumentError)
end
end
describe '#find_root_paths' do
it 'returns only the HTML files in the directory' do
paths = Percy::Cli.new.send(:find_root_paths, root_dir)