travis-web/spec/lib/app/config_spec.rb

114 lines
2.7 KiB
Ruby

require 'lib/spec_helper'
describe Travis::Web::App::Config do
let(:config) { Travis::Web::App::Config.new }
before :each do
@env = ENV.clone
ENV.clear
end
after :each do
ENV.replace(@env)
end
describe 'env' do
it 'given ENV=foo it returns foo' do
ENV['ENV'] = 'foo'
config.env.should == 'foo'
end
it 'defaults to development' do
config.env.should == 'development'
end
end
describe 'run_api?' do
it 'given RUN_API=1 it returns true' do
ENV['RUN_API'] = '1'
config.run_api?.should be_true
end
it 'given RUN_API=0 it returns false' do
ENV['RUN_API'] = '0'
config.run_api?.should be_false
end
it 'defaults to true if api_endpoint is local' do
ENV['API_ENDPOINT'] = '/api'
config.run_api?.should be_true
end
it 'defaults to false if api_endpoint is not local' do
ENV['API_ENDPOINT'] = 'https://api.travis-ci.com'
config.run_api?.should be_false
end
end
describe 'api_endpoint' do
it 'given API_ENDPOINT=https://api.travis-ci.com it returns the given url' do
ENV['API_ENDPOINT'] = 'https://api.travis-ci.com'
config.api_endpoint.should == 'https://api.travis-ci.com'
end
it 'defaults to /api if run_api? is true' do
config.stubs(:run_api?).returns(true)
config.api_endpoint.should == '/api'
end
it 'defaults to https://api.travis-ci.org if run_api? is false' do
config.stubs(:run_api?).returns(false)
config.api_endpoint.should == 'https://api.travis-ci.org'
end
end
describe 'client_endpoint' do
it 'given CLIENT_ENDPOINT=/client it returns the given url' do
ENV['CLIENT_ENDPOINT'] = '/client'
config.client_endpoint.should == '/client'
end
it 'defaults to /' do
config.client_endpoint.should == '/'
end
end
describe 'deflate?' do
it 'given DEFLATE=1 it returns true' do
ENV['DEFLATE'] = '1'
config.deflate.should be_true
end
it 'given DEFLATE=0 it returns false' do
ENV['DEFLATE'] = '0'
config.deflate.should be_false
end
it 'defaults to true if env is production' do
config.stubs(:env).returns('production')
config.deflate.should be_true
end
it 'defaults to false if env is not production' do
config.stubs(:env).returns('development')
config.deflate.should be_false
end
end
describe 'watch?' do
it 'given WATCH=1 it returns true' do
ENV['WATCH'] = '1'
config.watch?.should be_true
end
it 'given WATCH=0 it returns false' do
ENV['WATCH'] = '0'
config.watch?.should be_false
end
it 'defaults to false' do
config.watch?.should be_false
end
end
end