This commit is contained in:
benji 2015-09-09 21:52:16 +02:00
parent 4c44b3f738
commit 5ff29d2a1f
13 changed files with 44 additions and 42 deletions

1
.rspec
View file

@ -1,2 +1,3 @@
--color --color
--require spec_helper --require spec_helper
--require rails_helper

View file

@ -12,7 +12,7 @@ class ApplicationController < ActionController::Base
end end
def current_client def current_client
@current_client ||= Client.find_by key: request.headers["X-API-KEY"] @current_client ||= Client.find_by key: request.headers["X_API_KEY"]
end end
def current_ability def current_ability

View file

@ -1,10 +1,12 @@
class TransactionsController < ApplicationController class TransactionsController < ApplicationController
load_and_authorize_resource
skip_before_filter :verify_authenticity_token, only: :create skip_before_filter :verify_authenticity_token, only: :create
before_action :authenticate_user!, except: :create before_action :authenticate_user!, except: :create
before_action :authenticate_user_or_client!, only: :create before_action :authenticate_user_or_client!, only: :create
# This line MUST be placed after authentication
load_and_authorize_resource
def index def index
@transactions = Transaction.all @transactions = Transaction.all
end end

View file

@ -0,0 +1,18 @@
describe TransactionsController, type: :api do
before :each do
@client = Client.create name: "Tap"
@key = @client.key
end
describe "Authentication" do
it "should require a client authentication key" do
post '/transactions'
expect(last_response.status).to eq(401)
end
it "should work with valid key" do
post '/transactions', { transaction: attributes_for(:transaction) }, { 'HTTP_ACCEPT' => "application/json", "X_API_KEY" => @key }
expect(last_response.status).to eq(201)
end
end
end

View file

@ -1,7 +1,4 @@
require 'rails_helper' describe TransactionsController, type: :controller do
require 'spec_helper'
RSpec.describe TransactionsController, type: :controller do
describe "creating transaction" do describe "creating transaction" do
before :each do before :each do
@debtor = create(:user) @debtor = create(:user)

View file

@ -1,6 +1,4 @@
require 'rails_helper' describe UsersController, type: :controller do
RSpec.describe UsersController, type: :controller do
before :each do before :each do
@user = create :penning @user = create :penning
sign_in @user sign_in @user

View file

@ -1,14 +1,2 @@
require 'rails_helper'
# Specs in this file have access to a helper object that includes
# the TransactionsHelper. For example:
#
# describe TransactionsHelper do
# describe "string concat" do
# it "concats two strings with spaces" do
# expect(helper.concat_strings("this","that")).to eq("this that")
# end
# end
# end
RSpec.describe TransactionsHelper, type: :helper do RSpec.describe TransactionsHelper, type: :helper do
end end

View file

@ -1,14 +1,2 @@
require 'rails_helper'
# Specs in this file have access to a helper object that includes
# the UsersHelper. For example:
#
# describe UsersHelper do
# describe "string concat" do
# it "concats two strings with spaces" do
# expect(helper.concat_strings("this","that")).to eq("this that")
# end
# end
# end
RSpec.describe UsersHelper, type: :helper do RSpec.describe UsersHelper, type: :helper do
end end

View file

@ -9,9 +9,7 @@
# updated_at :datetime not null # updated_at :datetime not null
# #
require 'rails_helper' describe Client, type: :model do
RSpec.describe Client, type: :model do
before :each do before :each do
@client = create :client @client = create :client
end end

View file

@ -13,9 +13,7 @@
# updated_at :datetime not null # updated_at :datetime not null
# #
require 'rails_helper' describe Transaction, type: :model do
RSpec.describe Transaction, type: :model do
it "has a valid factory" do it "has a valid factory" do
expect(create(:transaction)).to be_valid expect(create(:transaction)).to be_valid
end end

View file

@ -10,9 +10,7 @@
# updated_at :datetime not null # updated_at :datetime not null
# #
require 'rails_helper' describe User, type: :model do
RSpec.describe User, type: :model do
before :each do before :each do
@user = create :user @user = create :user
end end

View file

@ -22,6 +22,11 @@ Coveralls.wear!('rails')
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
require 'factory_girl' require 'factory_girl'
require 'devise' require 'devise'
Dir[File.join(File.dirname(__FILE__), 'support', '**', '*.rb')].each do |f|
require f
end
RSpec.configure do |config| RSpec.configure do |config|
config.include FactoryGirl::Syntax::Methods config.include FactoryGirl::Syntax::Methods
config.include Devise::TestHelpers, type: :controller config.include Devise::TestHelpers, type: :controller

View file

@ -0,0 +1,11 @@
module ApiHelper
include Rack::Test::Methods
def app
Rails.application
end
end
RSpec.configure do |config|
config.include ApiHelper, type: :api #apply to all spec for apis folder
end