forgeplus/spec/models/wallet_spec.rb

41 lines
1002 B
Ruby

require 'rails_helper'
RSpec.describe Wallet, type: :model do
describe 'receive' do
it 'success' do
wallet = Wallet.find_by_id(4)
balance = wallet.balance
amount = 5
expect {
wallet.receive(amount)
}.to change { wallet.balance }.from(balance).to(balance+amount)
end
end
describe 'pay' do
context 'balance enough' do
it 'success to pay' do
wallet = Wallet.find_by_id(4)
balance = wallet.balance
amount = 5
success = false
expect {
success = wallet.pay(amount)
}.to change { wallet.balance }.from(balance).to(balance-amount)
expect(success).to eq(true)
end
end
context 'balance not enough' do
it 'fail to pay' do
wallet = Wallet.find_by_id(4)
balance = wallet.balance
amount = 500
success = wallet.pay(amount)
expect(success).to eq(false)
expect(wallet.balance).to eq(balance)
end
end
end
end