Test caches

This commit is contained in:
Ilion Beyst 2015-09-08 14:00:11 +02:00
parent ae049d523e
commit 22d3e0c617
5 changed files with 28 additions and 6 deletions

View file

@ -11,7 +11,6 @@
FactoryGirl.define do FactoryGirl.define do
factory :client do factory :client do
name {{ Faker::Lorem.word }} name { Faker::Lorem.word }
end end
end end

View file

@ -14,8 +14,8 @@
FactoryGirl.define do FactoryGirl.define do
factory :transaction do factory :transaction do
debtor association :debtor, factory: :user
creditor association :creditor, factory: :user
amount { rand(100) } amount { rand(100) }
origin 'FactoryGirl' origin 'FactoryGirl'
message { Faker::Lorem.sentence } message { Faker::Lorem.sentence }

View file

@ -15,5 +15,24 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe Transaction, type: :model do RSpec.describe Transaction, type: :model do
pending "add some examples to (or delete) #{__FILE__}" it "has a valid factory" do
expect(create(:transaction)).to be_valid
end
describe "cache" do
before :each do
@user = create(:user)
end
it "should update creditor cache" do
trans = build(:transaction, creditor: @user, amount: 10)
expect {trans.save!}.to change {@user.balance}.by(10)
end
it "should update debtor cache" do
trans = build(:transaction, debtor: @user, amount: 10)
expect {trans.save!}.to change {@user.balance}.by(-10)
end
end
end end

View file

@ -13,5 +13,7 @@
require 'rails_helper' require 'rails_helper'
RSpec.describe User, type: :model do RSpec.describe User, type: :model do
pending "add some examples to (or delete) #{__FILE__}" it "has a valid factory" do
expect(create(:user)).to be_valid
end
end end

View file

@ -16,7 +16,9 @@
# users commonly want. # users commonly want.
# #
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
require 'factory_girl'
RSpec.configure do |config| RSpec.configure do |config|
config.include FactoryGirl::Syntax::Methods
# rspec-expectations config goes here. You can use an alternate # rspec-expectations config goes here. You can use an alternate
# assertion/expectation library such as wrong or the stdlib/minitest # assertion/expectation library such as wrong or the stdlib/minitest
# assertions if you prefer. # assertions if you prefer.