From 0a3c949d099c0333147635257378e198a76cfb3f Mon Sep 17 00:00:00 2001 From: benji Date: Mon, 23 Jan 2017 17:22:29 +0100 Subject: [PATCH] Fix tests --- spec/apis/transactions_controller_spec.rb | 81 ++++++++++++++--------- 1 file changed, 49 insertions(+), 32 deletions(-) diff --git a/spec/apis/transactions_controller_spec.rb b/spec/apis/transactions_controller_spec.rb index 890c21b..6999b82 100644 --- a/spec/apis/transactions_controller_spec.rb +++ b/spec/apis/transactions_controller_spec.rb @@ -1,4 +1,9 @@ describe TransactionsController, type: :api do + def post_transaction(extra_attributes = {}) + post '/transactions', { transaction: @api_attributes.merge(extra_attributes) }, + { 'HTTP_ACCEPT' => "application/json", "HTTP_AUTHORIZATION" => "Token token=#{@key}" } + end + before :each do @debtor = create :user @creditor = create :user @@ -14,43 +19,55 @@ describe TransactionsController, type: :api do @key = @client.key end - def post_transaction(extra_attributes = {}) - post '/transactions', { transaction: @api_attributes.merge(extra_attributes) }, - { 'HTTP_ACCEPT' => "application/json", "HTTP_AUTHORIZATION" => "Token token=#{@key}" } - end - - describe "Authentication" do - it "should require a client authentication key" do - post '/transactions' - expect(last_response.status).to eq(302) + describe 'with key' do + before :each do + @client.add_role :create_transactions end - it "should work with valid key" do - post_transaction - expect(last_response.status).to eq(201) + def post_transaction(extra_attributes = {}) + post '/transactions', { transaction: @api_attributes.merge(extra_attributes) }, + { 'HTTP_ACCEPT' => "application/json", "HTTP_AUTHORIZATION" => "Token token=#{@key}" } + end + + describe "Authentication" do + it "should require a client authentication key" do + post '/transactions' + expect(last_response.status).to eq(302) + end + + it "should work with valid key" do + post_transaction + expect(last_response.status).to eq(201) + end + end + + describe "successfull creating transaction" do + it "should create a transaction" do + expect { post_transaction }.to change { Transaction.count }.by(1) + end + + it "should set issuer" do + post_transaction + @transaction = Transaction.last + expect(@transaction.issuer).to eq(@client) + end + end + + describe "failed creating transaction" do + # it "should create a transaction" do + # expect { post_transaction(euros: -5) }.to change { Transaction.count }.by(0) + # end + + # it "should give 422 status" do + # post_transaction(euros: -4) + # expect(last_response.status).to eq(422) + # end end end - describe "successfull creating transaction" do - it "should create a transaction" do - expect { post_transaction }.to change { Transaction.count }.by(1) + describe 'without key' do + it "should not create a transaction" do + expect { post_transaction }.to_not change { Transaction.count } end - - it "should set issuer" do - post_transaction - @transaction = Transaction.last - expect(@transaction.issuer).to eq(@client) - end - end - - describe "failed creating transaction" do - # it "should create a transaction" do - # expect { post_transaction(euros: -5) }.to change { Transaction.count }.by(0) - # end - - # it "should give 422 status" do - # post_transaction(euros: -4) - # expect(last_response.status).to eq(422) - # end end end