Add API authenticated ping resource

This commit is contained in:
Thibault Jouan 2015-05-06 02:31:53 +00:00
parent d12c589e01
commit 78f79c4c34
3 changed files with 29 additions and 1 deletions

View File

@ -29,7 +29,11 @@ module API
end
def ping
render json: { pong: true }
ping_response
end
def ping_auth
ping_response
end
def authenticate!
@ -43,5 +47,12 @@ module API
head :not_acceptable, content_type: 'application/json'
end
end
private
def ping_response
render json: { pong: true }
end
end
end

View File

@ -3,6 +3,7 @@ Rails.application.routes.draw do
namespace :api do
get '/ping', to: 'application#ping'
get '/ping/auth', to: 'application#ping_auth'
match '*all', to: 'application#cor_preflight', via: :options
resources :playlists, only: %i[index show create update destroy]
resources :sessions, only: :create

View File

@ -7,6 +7,22 @@ describe 'API application' do
end
end
describe 'authenticated ping endpoint' do
before { get api_ping_auth_path, format: :json }
it 'requests authentication' do
expect(response).to have_http_status 401
end
context 'when session is authenticated' do
subject { response }
before { api_sign_in }
it { is_expected.to have_http_status 200 }
end
end
describe 'formats handling' do
before { api_sign_in }