Sha256: eb7f638a64e310727a63b8981c781d8e8e2e7259e1a2ed2404f0943fadd4c76b

Contents?: true

Size: 1.57 KB

Versions: 87

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

87 entries across 87 versions & 1 rubygems

Version Path
pact_broker-2.79.1 spec/features/edit_webhook_spec.rb
pact_broker-2.79.0 spec/features/edit_webhook_spec.rb
pact_broker-2.78.1 spec/features/edit_webhook_spec.rb
pact_broker-2.78.0 spec/features/edit_webhook_spec.rb
pact_broker-2.77.0 spec/features/edit_webhook_spec.rb
pact_broker-2.76.2 spec/features/edit_webhook_spec.rb
pact_broker-2.76.1 spec/features/edit_webhook_spec.rb
pact_broker-2.76.0 spec/features/edit_webhook_spec.rb
pact_broker-2.75.0 spec/features/edit_webhook_spec.rb
pact_broker-2.74.1 spec/features/edit_webhook_spec.rb
pact_broker-2.74.0 spec/features/edit_webhook_spec.rb
pact_broker-2.73.0 spec/features/edit_webhook_spec.rb
pact_broker-2.72.0 spec/features/edit_webhook_spec.rb
pact_broker-2.71.0 spec/features/edit_webhook_spec.rb
pact_broker-2.70.0 spec/features/edit_webhook_spec.rb
pact_broker-2.69.0 spec/features/edit_webhook_spec.rb
pact_broker-2.68.1 spec/features/edit_webhook_spec.rb
pact_broker-2.68.0 spec/features/edit_webhook_spec.rb
pact_broker-2.67.0 spec/features/edit_webhook_spec.rb
pact_broker-2.66.0 spec/features/edit_webhook_spec.rb