API test
This commit is contained in:
parent
4c44b3f738
commit
5ff29d2a1f
13 changed files with 44 additions and 42 deletions
1
.rspec
1
.rspec
|
@ -1,2 +1,3 @@
|
||||||
--color
|
--color
|
||||||
--require spec_helper
|
--require spec_helper
|
||||||
|
--require rails_helper
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
18
spec/apis/transactions_controller_spec.rb
Normal file
18
spec/apis/transactions_controller_spec.rb
Normal 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
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
11
spec/support/api_helper.rb
Normal file
11
spec/support/api_helper.rb
Normal 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
|
Loading…
Reference in a new issue