From 7671bef9c139c2eacb2f35512a4a5084e3309719 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Franti=C5=A1ek=20Dvo=C5=99=C3=A1k?= Date: Thu, 9 Jun 2016 22:25:06 +0200 Subject: [PATCH] Basic launch test implementation. --- .rubocop.yml | 2 +- Gemfile | 9 ++++----- Makefile | 2 +- application.rb | 17 +++++++++++++++++ config.ru | 18 +----------------- lib/api.rb | 4 ++-- test/launch_test.rb | 15 +++++++++++++++ test/test_helper.rb | 17 +++++++++++++++++ 8 files changed, 58 insertions(+), 26 deletions(-) create mode 100644 application.rb create mode 100644 test/launch_test.rb create mode 100644 test/test_helper.rb diff --git a/.rubocop.yml b/.rubocop.yml index f348ad9..2d12e50 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -29,7 +29,7 @@ Style/FormatString: # (do want) Style/GlobalVars: Exclude: - - config.ru + - application.rb - lib/api.rb - lib/nebula.rb diff --git a/Gemfile b/Gemfile index 8b7c60e..7ba90f6 100644 --- a/Gemfile +++ b/Gemfile @@ -1,12 +1,11 @@ source 'https://rubygems.org' gem 'opennebula' - gem 'sinatra' - gem 'sinatra-cross_origin' - -gem 'rubocop', require: false - # recommended for sinatra gem 'thin' + +gem 'rubocop', group: :development, require: false +gem 'rack-test', group: :development +gem 'minitest', group: :development diff --git a/Makefile b/Makefile index b6d5d18..3079bc0 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ lint: rubocop test: - : + ruby -rminitest/autorun -Ilib:test -e 'Dir.glob "./test/*_test.rb", &method(:require)' clean: rm -fv Gemfile.lock diff --git a/application.rb b/application.rb new file mode 100644 index 0000000..62df71d --- /dev/null +++ b/application.rb @@ -0,0 +1,17 @@ +require 'logger' + +Dir['./models/*.rb'].each do |file| + require file +end +require './version' +require './lib/error' +require './lib/server_cipher_auth' +require './lib/nebula' +require './lib/api' + +$logger = Logger.new(STDOUT) +$logger.formatter = proc do |severity, datetime, _progname, msg| + date_format = datetime.strftime('%Y-%m-%dT%H:%M:%S%z') + sprintf "[#{date_format}] %5s: #{msg}\n", severity +end +$nebula = Now::Nebula.new() diff --git a/config.ru b/config.ru index af8d3b5..ef65fbd 100644 --- a/config.ru +++ b/config.ru @@ -1,18 +1,2 @@ -require 'logger' - -Dir['./models/*.rb'].each do |file| - require file -end -require './version' -require './lib/error' -require './lib/server_cipher_auth' -require './lib/nebula' -require './lib/api' - -$logger = Logger.new(STDOUT) -$logger.formatter = proc do |severity, datetime, _progname, msg| - date_format = datetime.strftime('%Y-%m-%dT%H:%M:%S%z') - sprintf "[#{date_format}] %5s: #{msg}\n", severity -end -$nebula = Now::Nebula.new() +require './application' run Now::Application diff --git a/lib/api.rb b/lib/api.rb index 7e5c62f..ec05fb8 100644 --- a/lib/api.rb +++ b/lib/api.rb @@ -22,8 +22,6 @@ module Now before do # to sinatra request logger point to proper object env['rack.logger'] = $logger - - switch_user(params['user']) end helpers do @@ -44,6 +42,7 @@ module Now get '/list' do cross_origin begin + switch_user(params['user']) networks = @nebula.list_networks JSON.pretty_generate(networks) rescue NowError => e @@ -55,6 +54,7 @@ module Now get '/network/:id' do cross_origin begin + switch_user(params['user']) network = @nebula.get(params['id']) JSON.pretty_generate(network) rescue NowError => e diff --git a/test/launch_test.rb b/test/launch_test.rb new file mode 100644 index 0000000..7dee70f --- /dev/null +++ b/test/launch_test.rb @@ -0,0 +1,15 @@ +require 'test_helper' + +class LaunchTest < Minitest::Test + include Rack::Test::Methods + + def app + Now::Application + end + + def test_my_default + get '/' + assert_equal Now::API_VERSION, last_response.body + end + +end diff --git a/test/test_helper.rb b/test/test_helper.rb new file mode 100644 index 0000000..9e2c80e --- /dev/null +++ b/test/test_helper.rb @@ -0,0 +1,17 @@ +require './application' +require 'minitest/autorun' +require 'rack/test' + +class LunchTest < Minitest::Test + include Rack::Test::Methods + + def app + Now::Application + end + + def test_my_default + get '/' + assert_equal Now::API_VERSION, last_response.body + end + +end -- 1.8.2.3