diff --git a/lib/faraday/adapter/test.rb b/lib/faraday/adapter/test.rb index 313b141e3..e7f93e24d 100644 --- a/lib/faraday/adapter/test.rb +++ b/lib/faraday/adapter/test.rb @@ -55,6 +55,7 @@ def initialize(strict_mode: false) @stack = {} @consumed = {} @strict_mode = strict_mode + @stubs_mutex = Monitor.new yield(self) if block_given? end @@ -72,7 +73,10 @@ def match(env) stub, meta = matches?(stack, env) if stub - consumed << stack.delete(stub) + @stubs_mutex.synchronize do + removed = stack.delete(stub) + consumed << removed unless removed.nil? + end return stub, meta end matches?(consumed, env)