From 26d31b926afa796ee85174c4ac69a877c0ecf0f1 Mon Sep 17 00:00:00 2001 From: Tom Naessens Date: Fri, 31 May 2019 14:01:43 +1200 Subject: [PATCH] Add tests for #51 --- spec/controllers/requests_controller_spec.rb | 51 ++++++++++++++++++++ spec/factories/requests.rb | 6 ++- 2 files changed, 56 insertions(+), 1 deletion(-) diff --git a/spec/controllers/requests_controller_spec.rb b/spec/controllers/requests_controller_spec.rb index f5fc12f..d053cf6 100644 --- a/spec/controllers/requests_controller_spec.rb +++ b/spec/controllers/requests_controller_spec.rb @@ -1,5 +1,56 @@ require 'rails_helper' RSpec.describe RequestsController, type: :controller do + describe "accepting request" do + let(:request) { create(:request, amount: 10) } + + context "a request" do + it "can be accepted by the debtor" do + debtor_balance = request.debtor.balance + creditor_balance = request.creditor.balance + + sign_in request.debtor + post :confirm, params: { request_id: request.id } + + request.reload + + expect(request.status).to eq("confirmed") + + expect(debtor_balance - 10).to eq(request.debtor.balance) + expect(creditor_balance + 10).to eq(request.creditor.balance) + end + + it "can not be accepted by the creditor" do + debtor_balance = request.debtor.balance + creditor_balance = request.creditor.balance + + sign_in request.creditor + post :confirm, params: { request_id: request.id } + + request.reload + + expect(request.status).to eq("open") + + expect(debtor_balance).to eq(request.debtor.balance) + expect(creditor_balance).to eq(request.creditor.balance) + end + + it "can not be accepted by the issuer" do + debtor_balance = request.debtor.balance + creditor_balance = request.creditor.balance + + sign_in request.issuer + post :confirm, params: { request_id: request.id } + + request.reload + + expect(request.status).to eq("open") + + expect(debtor_balance).to eq(request.debtor.balance) + expect(creditor_balance).to eq(request.creditor.balance) + end + end + + end end diff --git a/spec/factories/requests.rb b/spec/factories/requests.rb index 0dba536..4048d9d 100644 --- a/spec/factories/requests.rb +++ b/spec/factories/requests.rb @@ -16,7 +16,11 @@ FactoryBot.define do factory :request do - + status { :open } + association :issuer, factory: :user, name: 'Issuer' + association :debtor, factory: :user, name: 'Debtor' + association :creditor, factory: :user, name: 'Creditor' + amount { 5 } end end