Basic launch test implementation.
authorFrantišek Dvořák <valtri@civ.zcu.cz>
Thu, 9 Jun 2016 20:25:06 +0000 (22:25 +0200)
committerFrantišek Dvořák <valtri@civ.zcu.cz>
Thu, 9 Jun 2016 20:25:06 +0000 (22:25 +0200)
.rubocop.yml
Gemfile
Makefile
application.rb [new file with mode: 0644]
config.ru
lib/api.rb
test/launch_test.rb [new file with mode: 0644]
test/test_helper.rb [new file with mode: 0644]

index f348ad9..2d12e50 100644 (file)
@@ -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 (file)
--- 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
index b6d5d18..3079bc0 100644 (file)
--- 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 (file)
index 0000000..62df71d
--- /dev/null
@@ -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()
index af8d3b5..ef65fbd 100644 (file)
--- 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
index 7e5c62f..ec05fb8 100644 (file)
@@ -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 (file)
index 0000000..7dee70f
--- /dev/null
@@ -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 (file)
index 0000000..9e2c80e
--- /dev/null
@@ -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