add payment tests

This commit is contained in:
Rishabh Saxena 2016-07-27 19:44:55 +05:30
parent a5bb038f61
commit 7b23018a06
2 changed files with 53 additions and 0 deletions

View file

@ -0,0 +1,9 @@
FactoryGirl.define do
factory :payment do
user
conference
last4 4242
authorization_code 1234567890
amount 10
end
end

View file

@ -0,0 +1,44 @@
require 'spec_helper'
describe Payment do
context 'new payment' do
let(:payment) { create(:payment) }
it 'sets status to "unpaid" by default' do
expect(payment.status).to eq('unpaid')
end
end
describe 'validations' do
it 'has a valid factory' do
expect(build(:payment)).to be_valid
end
it { is_expected.to validate_presence_of(:last4) }
it { is_expected.to validate_presence_of(:amount) }
it { is_expected.to validate_presence_of(:authorization_code) }
it { is_expected.to validate_presence_of(:status) }
it { is_expected.to validate_presence_of(:user_id) }
it { is_expected.to validate_presence_of(:conference_id) }
it 'is not valid with a amount equals zero' do
should_not allow_value(0).for(:amount)
end
it 'is not valid with a amount smaller than zero' do
should_not allow_value(-1).for(:amount)
end
it 'is valid with a amount greater than zero' do
should allow_value(1).for(:amount)
end
end
describe 'self#purchase'
end