summaryrefslogtreecommitdiff
path: root/spec/support/helpers/expect_next_instance_of.rb
blob: b95046b2b4230cccf8a902f5cd75267d47b29b69 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
module ExpectNextInstanceOf
  def expect_next_instance_of(klass, *new_args)
    receive_new = receive(:new)
    receive_new.with(*new_args) if new_args.any?

    expect(klass).to receive_new
      .and_wrap_original do |method, *original_args|
        method.call(*original_args).tap do |instance|
          yield(instance)
        end
      end
  end
end