Sha256: 9a1c5b870697a2e9f5d80f0f2cca9f93cd3a93b786899729486f429e0d64e435
Contents?: true
Size: 1.57 KB
Versions: 12
Compression:
Stored size: 1.57 KB
Contents
require "support/test_data_builder" describe "Creating a webhook" do let(:td) { TestDataBuilder.new } before do td.create_pact_with_hierarchy("Some Consumer", "1", "Some Provider") .create_webhook end let(:path) { "/webhooks/#{td.webhook.uuid}" } let(:headers) { {"CONTENT_TYPE" => "application/json"} } let(:response_body) { JSON.parse(last_response.body, symbolize_names: true)} let(:webhook_json) do h = load_json_fixture("webhook_valid.json") h["request"]["url"] = "https://bar.com" h.to_json end let(:reloaded_webhook) { PactBroker::Webhooks::Repository.new.find_by_uuid(td.webhook.uuid) } subject { put path, webhook_json, headers; last_response } context "with invalid attributes" do let(:webhook_json) { "{}" } it "returns a 400" do subject expect(last_response.status).to be 400 end it "returns the validation errors" do subject expect(response_body[:errors]).to_not be_empty end it "does not update the webhook" do expect(reloaded_webhook.request.method).to eq "POST" end end context "with valid attributes" do let(:webhook_hash) { JSON.parse(webhook_json, symbolize_names: true) } it "returns a 200 response" do subject expect(last_response.status).to be 200 end it "returns a JSON Content Type" do subject expect(last_response.headers["Content-Type"]).to eq "application/hal+json;charset=utf-8" end it "updates the webhook" do subject expect(reloaded_webhook.request.url).to eq "https://bar.com" end end end
Version data entries
12 entries across 12 versions & 1 rubygems