require 'pact_broker/domain/webhook_request' # certificates and key generated by script/generate-certificates-for-webooks-certificate-spec.rb describe "executing a webhook to a server with a self signed certificate" do let(:td) { TestDataBuilder.new } before(:all) do @pipe = IO.popen("bundle exec ruby spec/support/ssl_webhook_server.rb") sleep 3 end let(:webhook_request) do PactBroker::Domain::WebhookRequest.new( method: 'get', url: 'https://localhost:4444/') end let(:pact) { td.create_pact_with_hierarchy.and_return(:pact) } subject { webhook_request.execute({}) } context "without the correct cacert" do it "fails" do expect(subject.success?).to be false end end context "with the correct cacert" do let!(:certificate) do td.create_certificate(path: 'spec/fixtures/certificates/cacert.pem') end it "succeeds" do puts subject.error unless subject.success? expect(subject.success?).to be true end end after(:all) do Process.kill 'KILL', @pipe.pid end end