# encoding: utf-8 require 'spec_helper' describe Initializer do context '#run' do it 'creates all files/directories neccessary to run local_pac' do config_string = <<-EOS.strip_heredoc :access_log: #{File.join(working_directory, 'log', 'access.log')} :local_storage: #{File.join(working_directory, 'data', 'storage.git')} :executable: #{File.join(working_directory, 'bin', 'local_pac')} :pid_file: #{File.join(working_directory, 'run', 'pid')} :sass_cache: #{File.join(working_directory, 'cache', 'sass')} :config_file: #{File.join(working_directory, 'config', 'config.yaml')} :gem_path: [] EOS config_file = create_file('config_spec.yaml', config_string) config = LocalPac::Config.new(config_file) initializer = Initializer.new({}, config) result = capture(:stdout) do silence(:stderr) do initializer.run end end expect(path_exists?('log')).to be_true expect(path_exists?('config/config.yaml')).to be_true expect(path_exists?('cache/sass')).to be_true expect(path_exists?('data/storage.git')).to be_true expect(path_exists?(::File.join('data', 'storage.git', 'hooks', 'pre-receive'))).to be_true expect(path_exists?('run')).to be_true expect(result).to include("access_log: #{File.expand_path(::File.join(working_directory, 'log', 'access.log'))}") end it 'adds examples on request' do config_string = <<-EOS.strip_heredoc :access_log: #{File.join(working_directory, 'log', 'access.log')} :local_storage: #{File.join(working_directory, 'data', 'storage.git')} :executable: #{File.join(working_directory, 'bin', 'local_pac')} :pid_file: #{File.join(working_directory, 'run', 'pid')} :sass_cache: #{File.join(working_directory, 'cache', 'sass')} :config_file: #{File.join(working_directory, 'config', 'config.yaml')} :gem_path: [] EOS config_file = create_file('config_spec.yaml', config_string) config = LocalPac::Config.new(config_file) initializer = Initializer.new({pre_seed: true}, config) silence(:stdout) do silence(:stderr) do initializer.run end end repo = GitRepository.new(config.local_storage) expect(repo.find_file(:proxy).name).to eq(:proxy) end end end