Finish api tests

This commit is contained in:
benji 2015-09-10 12:11:37 +02:00
parent cc07c17eff
commit 0da73da377

View file

@ -1,14 +1,21 @@
describe TransactionsController, type: :api do describe TransactionsController, type: :api do
let(:api_attributes) do before :each do
{ @debtor = create :user
debtor: create(:user).name, @creditor = create :user
creditor: create(:user).name, @api_attributes = {
debtor: @debtor.name,
creditor: @creditor.name,
message: Faker::Lorem.sentence, message: Faker::Lorem.sentence,
euros: rand(2), euros: 1,
cents: 1 + rand(100) cents: 25
} }
end end
def post_transaction(extra_attributes = {})
post '/transactions', { transaction: @api_attributes.merge(extra_attributes) },
{ 'HTTP_ACCEPT' => "application/json", "X_API_KEY" => @key }
end
before :each do before :each do
@client = Client.create name: "Tap" @client = Client.create name: "Tap"
@key = @client.key @key = @client.key
@ -21,8 +28,31 @@ describe TransactionsController, type: :api do
end end
it "should work with valid key" do it "should work with valid key" do
post '/transactions', { transaction: api_attributes }, { 'HTTP_ACCEPT' => "application/json", "X_API_KEY" => @key } post_transaction
expect(last_response.status).to eq(201) expect(last_response.status).to eq(201)
end end
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 402 status" do
post_transaction(euros: -4)
expect(last_response.status).to eq(422)
end
end
end end