Sha256: 42ca2a14e34512e6bc84f8e42d2ae77a4c66932850138cfc5c1ecde05c7769bd

Contents?: true

Size: 1.62 KB

Versions: 26

Compression:

Stored size: 1.62 KB

Contents

require 'spec_helper'
require 'stripe/rails/testing'

describe "Testing" do
  let(:observer)  { Class.new }
  let(:event)     { observer.instance_variable_get :@event }
  let(:target)    { observer.instance_variable_get :@target }

  before do
    StripeMock.start

    observer.include Stripe::Callbacks
    observer.class_eval do
      after_invoice_payment_succeeded! { |target, event| @event, @target = event, target }
    end
  end
  
  after do
    ::Stripe::Callbacks.clear_callbacks!
    StripeMock.stop
  end

  describe '.send_event' do
    subject { Stripe::Rails::Testing.send_event event_name }

    describe 'when forwarding the event to the callback' do
      let(:event_name) { "invoice.payment_succeeded" }

      it 'the callback must run' do
        subject
        event.wont_be_nil
        event.type.must_equal "invoice.payment_succeeded"
      end
    end

    describe 'when forwarding the event to another callback' do
      let(:event_name) { 'customer.created' }

      it 'the callback must not run' do
        subject
        event.must_be_nil
      end
    end

    describe 'when overwriting event properties' do
      subject { Stripe::Rails::Testing.send_event event_name, params }
      let(:event_name) { "invoice.payment_succeeded" }
      let(:params)     { { subtotal: 500, total: 1000, currency: "eur" } }

      it 'the callback should run with overwritten properties' do
        subject
        event.wont_be_nil
        event.type.must_equal "invoice.payment_succeeded"
        target.subtotal.must_equal 500
        target.total.must_equal 1000
        target.currency.must_equal "eur"
      end
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
stripe-rails-1.10.0 test/testing_spec.rb
stripe-rails-1.9.1 test/testing_spec.rb
stripe-rails-1.9.0 test/testing_spec.rb
stripe-rails-1.8.2 test/testing_spec.rb
stripe-rails-1.8.1 test/testing_spec.rb
stripe-rails-1.8.0 test/testing_spec.rb
stripe-rails-1.7.2 test/testing_spec.rb
stripe-rails-1.7.1 test/testing_spec.rb
stripe-rails-1.7.0 test/testing_spec.rb
stripe-rails-1.6.1 test/testing_spec.rb
stripe-rails-1.6.0 test/testing_spec.rb
stripe-rails-1.5.5 test/testing_spec.rb
stripe-rails-1.5.4 test/testing_spec.rb
stripe-rails-1.5.3 test/testing_spec.rb
stripe-rails-1.5.2 test/testing_spec.rb
stripe-rails-1.5.1 test/testing_spec.rb
stripe-rails-1.5.0 test/testing_spec.rb
stripe-rails-1.4.2 test/testing_spec.rb
stripe-rails-1.4.1 test/testing_spec.rb
stripe-rails-1.4.0 test/testing_spec.rb