diff --git a/spec/bundler/realworld/slow_perf_spec.rb b/spec/bundler/realworld/slow_perf_spec.rb index 9f11821bf5..467e740cb4 100644 --- a/spec/bundler/realworld/slow_perf_spec.rb +++ b/spec/bundler/realworld/slow_perf_spec.rb @@ -11,12 +11,6 @@ RSpec.describe "bundle install with complex dependencies", :realworld => true do gem "mongoid", ">= 0.10.2" G - start_time = Time.now - - bundle "lock" - - duration = Time.now - start_time - - expect(duration.to_f).to be < 18 # seconds + expect { bundle "lock" }.to take_less_than(18) # seconds end end diff --git a/spec/bundler/support/matchers.rb b/spec/bundler/support/matchers.rb index ce6b216619..8b22e7dbc3 100644 --- a/spec/bundler/support/matchers.rb +++ b/spec/bundler/support/matchers.rb @@ -97,6 +97,18 @@ module Spec end end + RSpec::Matchers.define :take_less_than do |seconds| + match do |actual| + start_time = Time.now + + actual.call + + (Time.now - start_time).to_f < seconds + end + + supports_block_expectations + end + define_compound_matcher :read_as, [exist] do |file_contents| diffable