discourse-subscriptions/spec/controllers/discourse_patrons/patrons_controller_spec.rb

48 lines
1.4 KiB
Ruby

# frozen_string_literal: true
require 'rails_helper'
module DiscoursePatrons
RSpec.describe PatronsController, type: :controller do
routes { DiscoursePatrons::Engine.routes }
describe 'index' do
it 'responds ok' do
get :index, format: :json
expect(response).to have_http_status(200)
end
end
describe 'create' do
before do
SiteSetting.stubs(:discourse_patrons_currency).returns('AUD')
SiteSetting.stubs(:discourse_patrons_secret_key).returns('xyz-678')
end
it 'responds ok' do
::Stripe::PaymentIntent.expects(:create)
post :create, params: {}, format: :json
expect(response).to have_http_status(200)
end
it 'has the correct amount' do
::Stripe::PaymentIntent.expects(:create).with(has_entry(:amount, 2000))
post :create, params: { amount: '20.00' }, format: :json
expect(response).to have_http_status(200)
end
it 'has no amount' do
::Stripe::PaymentIntent.expects(:create).with(has_entry(:amount, 0))
post :create, params: {}, format: :json
expect(response).to have_http_status(200)
end
it 'has curency' do
::Stripe::PaymentIntent.expects(:create).with(has_entry(:currency, 'AUD'))
post :create, params: {}, format: :json
expect(response).to have_http_status(200)
end
end
end
end