diff options
-rw-r--r-- | bin/rainbows | 2 | ||||
-rw-r--r-- | t/env_rack_env.ru | 4 | ||||
-rwxr-xr-x | t/t0006-process-rack-env.sh | 40 |
3 files changed, 45 insertions, 1 deletions
diff --git a/bin/rainbows b/bin/rainbows index eec54b0..c5c3d87 100644 --- a/bin/rainbows +++ b/bin/rainbows @@ -4,7 +4,7 @@ require 'unicorn/launcher' require 'rainbows' require 'optparse' -ENV["RACK_ENV"] = "development" +ENV["RACK_ENV"] ||= "development" daemonize = false listeners = [] options = { :listeners => listeners } diff --git a/t/env_rack_env.ru b/t/env_rack_env.ru new file mode 100644 index 0000000..7f12b29 --- /dev/null +++ b/t/env_rack_env.ru @@ -0,0 +1,4 @@ +use Rack::ContentLength +run proc { |env| + [ 200, { "Content-Type" => "text/plain" }, [ ENV["RACK_ENV"] ] ] +} diff --git a/t/t0006-process-rack-env.sh b/t/t0006-process-rack-env.sh new file mode 100755 index 0000000..7ee7c15 --- /dev/null +++ b/t/t0006-process-rack-env.sh @@ -0,0 +1,40 @@ +#!/bin/sh +. ./test-lib.sh + +t_plan 4 'ensure ENV["RACK_ENV"] is set correctly for '$model + +finish_checks () { + kill $rainbows_pid + test ! -s $curl_err + check_stderr +} + +t_begin "setup" && { + rtmpfiles curl_out curl_err +} + +t_begin "default RACK_ENV is 'development'" && { + rainbows_setup + rainbows -D -c $unicorn_config env_rack_env.ru + rainbows_wait_start + test x"$(curl -sSf http://$listen 2>$curl_err)" = x"development" + finish_checks +} + +t_begin "RACK_ENV from process ENV is inherited" && { + rainbows_setup + ( RACK_ENV=production rainbows -D -c $unicorn_config env_rack_env.ru ) + rainbows_wait_start + test x$(curl -sSf http://$listen 2>$curl_err) = x"production" + finish_checks +} + +t_begin "RACK_ENV from -E is set" && { + rainbows_setup + rainbows -D -c $unicorn_config -E none env_rack_env.ru + rainbows_wait_start + test x$(curl -sSf http://$listen 2>$curl_err) = x"none" + finish_checks +} + +t_done |