Sha256: aacd5c92c3e7083f396095c2e5a2bd514d352037bc046bcd1a407308fa0de1f1

Contents?: true

Size: 1.53 KB

Versions: 10

Compression:

Stored size: 1.53 KB

Contents

require 'spec_helper'

describe Stripe::EventsController do
  include Rack::Test::Methods

  let(:app) { Rails.application }
  before do
    header 'Accept', 'application/json'
    header 'Content-Type', 'application/json'
  end

  describe 'the events interface' do
    let(:params) {
      {
        id: 'evt_00000000000000',
        type: 'customer.updated',
        data: {object: 'customer'},
      }
    }

    before do
      stub_request(:get, "https://api.stripe.com/v1/events/evt_00000000000000").
        to_return(status: 200, body: Stripe::Event.construct_from(params).to_json, headers: {})
    end
    subject { post '/stripe/events', params.to_json }

    it { subject.must_be :ok? }
  end

  describe 'signed webhooks' do
    before do
      header 'Stripe-Signature', 't=1537832721,v1=123,v0=123'
      app.config.stripe.signing_secret = 'SECRET'
    end

    after { app.config.stripe.signing_secret = nil }

    let(:params) {
      {
        id: 'evt_00000000000001',
        type: 'customer.updated',
        data: {
          object: 'customer',
          fingerprint: 'xxxyyyzzz'
        },
      }
    }

    subject { post '/stripe/events', params.to_json }

    it 'returns bad_request when invalid' do
      Stripe::Webhook.expects(:construct_event).raises(Stripe::SignatureVerificationError.new('msg', 'sig_header'))
      subject.must_be :bad_request?
    end

    it 'returns ok when valid' do
      Stripe::Webhook.expects(:construct_event).returns(Stripe::Event.construct_from(params))
      subject.must_be :ok?
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
stripe-rails-1.8.2 test/events_controller_spec.rb
stripe-rails-1.8.1 test/events_controller_spec.rb
stripe-rails-1.8.0 test/events_controller_spec.rb
stripe-rails-1.7.2 test/events_controller_spec.rb
stripe-rails-1.7.1 test/events_controller_spec.rb
stripe-rails-1.7.0 test/events_controller_spec.rb
stripe-rails-1.6.1 test/events_controller_spec.rb
stripe-rails-1.6.0 test/events_controller_spec.rb
stripe-rails-1.5.5 test/events_controller_spec.rb
stripe-rails-1.5.4 test/events_controller_spec.rb