Sha256: c14583575c3c697dbe3b4ab0c9cdc9598d9f604d8a1ba78edb6c12bea71300f6
Contents?: true
Size: 1.13 KB
Versions: 25
Compression:
Stored size: 1.13 KB
Contents
require 'timeout' require 'net/http' require 'openssl' module Pact module MockService module Server class WaitForServerUp def self.call(host, port, options = {ssl: false}) tries = 0 responsive = false while !(responsive = responsive?(host, port, options)) && tries < 100 tries += 1 sleep 1 end raise "Timed out waiting for server to start up on port #{port}" if !responsive end def self.responsive? host, port, options http = Net::HTTP.new(host, port) if options[:ssl] http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE scheme = 'https' else scheme = 'http' end http.start { request = Net::HTTP::Get.new "#{scheme}://#{host}:#{port}/" request['X-Pact-Mock-Service'] = true response = http.request request response.code == '200' } rescue SystemCallError => e return false rescue EOFError return false end end end end end
Version data entries
25 entries across 25 versions & 2 rubygems