Sha256: 44246f93c10d82032bd521c639cc9ee380538103b72b954e268b3c3dac32c767

Contents?: true

Size: 1.33 KB

Versions: 4

Compression:

Stored size: 1.33 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'},
      }
    }
    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

4 entries across 4 versions & 1 rubygems

Version Path
stripe-rails-1.5.3 test/events_controller_spec.rb
stripe-rails-1.5.2 test/events_controller_spec.rb
stripe-rails-1.5.1 test/events_controller_spec.rb
stripe-rails-1.5.0 test/events_controller_spec.rb