Sha256: a69f758760ce43407a9dbf2b87922643fb127c4250d590a533f67bd7bb87e712

Contents?: true

Size: 1.04 KB

Versions: 1

Compression:

Stored size: 1.04 KB

Contents

# encoding: utf-8
require 'spec_helper'
require 'bundler'
require 'bundler/safe_catch'
require 'bundler/current_ruby'

class RecursiveTmpResolver
  include Bundler::SafeCatch
end

describe Bundler::SafeCatch do
  let(:resolver) { RecursiveTmpResolver.new() }

  it "should use safe_catch on jruby" do
    if Bundler.current_ruby.jruby?
      expect(Bundler::SafeCatch::Internal).to receive(:catch).and_call_original
      expect(Bundler::SafeCatch::Internal).to receive(:throw).and_call_original

      retval = resolver.safe_catch(:resolve) do
        resolver.safe_throw(:resolve, "good bye world")
      end
      expect(retval).to eq("good bye world")
    end
  end

  it "should use regular catch/throw on MRI" do
    if Bundler.current_ruby.mri?
      expect(Bundler::SafeCatch::Internal).to_not receive(:catch)
      expect(Bundler::SafeCatch::Internal).to_not receive(:throw)

      retval = resolver.safe_catch(:resolve) do
        resolver.safe_throw(:resolve, "good bye world")
      end
      expect(retval).to eq("good bye world")
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bundler-1.5.3 spec/bundler/safe_catch_spec.rb