# encoding: utf-8 require 'spec_helper' describe ProxyTester::Config do let(:config_file) { create_file('config_.yaml') } context '#initialize' do it 'requires a file name' do ProxyTester::Config.new(config_file) end end context '#to_s' do it 'outputs a nice config overview' do config = ProxyTester::Config.new(config_file) expect(config.to_s).to include ::File.join('.config', 'proxy_tester', 'config.yaml') end end context '#lock' do it 'raises and exception if changed afterward' do config = ProxyTester::Config.new(config_file) config.lock expect { config.config_file = 'asdf' }.to raise_error Exceptions::ConfigLocked end end context '#config_file' do it 'returns value of config file' do config_file = create_file 'config.yaml', <<-EOS.strip_heredoc --- :config_file: '/asdf/config' EOS config = ProxyTester::Config.new(config_file) expect(config.config_file).to eq('/asdf/config') end it 'returns default value if no config file is available' do config = ProxyTester::Config.new(config_file) file = ::File.join(ENV['HOME'], '.config', 'proxy_tester','config.yaml') expect(config.config_file).to eq(file) end end context '#user_file' do it 'returns value of user file' do config_file = create_file 'user.csv', <<-EOS.strip_heredoc :user_file: '/asdf/user' EOS config = ProxyTester::Config.new(config_file) expect(config.user_file).to eq('/asdf/user') end it 'returns default value if no user file is available' do config = ProxyTester::Config.new(config_file) file = ::File.join(ENV['HOME'], '.config', 'proxy_tester','user.csv') expect(config.user_file).to eq(file) end end context '#test_cases_directory' do it 'returns value of user file' do config_file = create_file 'user.csv', <<-EOS.strip_heredoc :test_cases_directory: '/asdf/cases' EOS config = ProxyTester::Config.new(config_file) expect(config.test_cases_directory).to eq('/asdf/cases') end it 'returns default value if no user file is available' do config = ProxyTester::Config.new(config_file) file = ::File.join(ENV['HOME'], '.config', 'proxy_tester','test_cases.d') expect(config.test_cases_directory).to eq(file) end end end