diff --git a/spec/factories/clients.rb b/spec/factories/clients.rb index 598d1c1..5926219 100644 --- a/spec/factories/clients.rb +++ b/spec/factories/clients.rb @@ -11,8 +11,6 @@ FactoryGirl.define do factory :client do - name "MyString" -key "MyString" + name { Faker::Lorem.word } end - end diff --git a/spec/factories/transactions.rb b/spec/factories/transactions.rb index 5273d51..d0eea9f 100644 --- a/spec/factories/transactions.rb +++ b/spec/factories/transactions.rb @@ -14,11 +14,10 @@ FactoryGirl.define do factory :transaction do - debtor nil -creditor nil -amount 1 -origin "MyString" -message "MyString" + association :debtor, factory: :user + association :creditor, factory: :user + amount { rand(100) } + origin 'FactoryGirl' + message { Faker::Lorem.sentence } end - end diff --git a/spec/factories/users.rb b/spec/factories/users.rb index c1ad519..9366357 100644 --- a/spec/factories/users.rb +++ b/spec/factories/users.rb @@ -12,7 +12,11 @@ FactoryGirl.define do factory :user do - + name { Faker::Internet.user_name } + + factory :penning do + penning true + end end end diff --git a/spec/models/transaction_spec.rb b/spec/models/transaction_spec.rb index 07cf2b7..805bf63 100644 --- a/spec/models/transaction_spec.rb +++ b/spec/models/transaction_spec.rb @@ -15,5 +15,24 @@ require 'rails_helper' 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 diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 4a84ec7..cc98894 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -13,5 +13,7 @@ require 'rails_helper' 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 diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 913e28a..87ddb8c 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -16,7 +16,9 @@ # users commonly want. # # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration +require 'factory_girl' RSpec.configure do |config| + config.include FactoryGirl::Syntax::Methods # rspec-expectations config goes here. You can use an alternate # assertion/expectation library such as wrong or the stdlib/minitest # assertions if you prefer.