From 1a572890097d513ee6012eb3b1edea4512e7ac68 Mon Sep 17 00:00:00 2001 From: Oleksii Kriuchykhin Date: Fri, 17 Aug 2018 16:13:21 +0200 Subject: [PATCH] Improve health check endpoint [SCI-2604] --- app/controllers/api/api_controller.rb | 2 ++ config/initializers/extends.rb | 2 +- config/initializers/silencer.rb | 3 ++- docker-compose.yml | 2 +- spec/controllers/api/api_controller_spec.rb | 16 +++++++++++++++- 5 files changed, 21 insertions(+), 4 deletions(-) diff --git a/app/controllers/api/api_controller.rb b/app/controllers/api/api_controller.rb index 630e7fa4c..5a52ea4f3 100644 --- a/app/controllers/api/api_controller.rb +++ b/app/controllers/api/api_controller.rb @@ -34,6 +34,8 @@ module Api end def health + User.new && Team.new && Project.new + User.first if params[:db] render plain: 'RUNNING' end diff --git a/config/initializers/extends.rb b/config/initializers/extends.rb index d186191da..f4d4c798c 100644 --- a/config/initializers/extends.rb +++ b/config/initializers/extends.rb @@ -61,7 +61,7 @@ class Extends repository_asset_value: :asset] # List of implemented core API versions - API_VERSIONS = ['20170715'] + API_VERSIONS = %w(20170715 v1) # Array used for injecting names of additional authentication methods for API API_PLUGABLE_AUTH_METHODS = [:azure_jwt_auth] diff --git a/config/initializers/silencer.rb b/config/initializers/silencer.rb index 747b4d838..6b3fda2f0 100644 --- a/config/initializers/silencer.rb +++ b/config/initializers/silencer.rb @@ -7,7 +7,8 @@ Rails.application.configure do config.log_tags, silence: [ # Silence WickedPDF rendering in logs - %r{/projects/[0-9]*/reports/generate.pdf} + %r{/projects/[0-9]*/reports/generate.pdf}, + '/api/health' ] ) end diff --git a/docker-compose.yml b/docker-compose.yml index 6d89be949..12186ebb6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -2,7 +2,7 @@ version: '2' services: db: container_name: scinote_db_development - image: postgres:9.4 + image: postgres:9.6 volumes: - scinote_development_postgres:/var/lib/postgresql/data diff --git a/spec/controllers/api/api_controller_spec.rb b/spec/controllers/api/api_controller_spec.rb index 82e6d28fb..74be98d7d 100644 --- a/spec/controllers/api/api_controller_spec.rb +++ b/spec/controllers/api/api_controller_spec.rb @@ -1,6 +1,18 @@ require 'rails_helper' describe Api::ApiController, type: :controller do + describe 'GET #health' do + before do + get :health + end + + it 'Returns HTTP success and with correct text' do + expect(response).to be_success + expect(response).to have_http_status(200) + expect(response.body).to match('RUNNING') + end + end + describe 'GET #status' do before do get :status @@ -17,7 +29,9 @@ describe Api::ApiController, type: :controller do expect(hash_body).to match( 'message' => I18n.t('api.core.status_ok'), 'versions' => [{ 'version' => '20170715', - 'baseUrl' => '/api/20170715/' }] + 'baseUrl' => '/api/20170715/' }, + { 'version' => 'v1', + 'baseUrl' => '/api/v1/' }] ) end end