require_relative '../../../../test_helper' module Landrush module Cap module Darwin describe ConfigureVisibilityOnHost do let(:env) { Vagrant::Environment.new } CONFIG = <<-EOF.gsub(/^ +/, '') # Generated by landrush, a vagrant plugin nameserver 127.0.0.1 port #{Server.port} EOF describe 'configure_visibility_on_host' do it 'writes a resolver config on the host' do Dir.mktmpdir('landrush-test-dir-') do |dir| # puts "Using #{dir} for testing" Dir["#{dir}/*"].empty?.must_equal true # stub some internal methods to make sure config gets written into tmp directory ConfigureVisibilityOnHost.stubs(:config_dir).returns(Pathname(dir)) # also disable 'sudo' ConfigureVisibilityOnHost.stubs(:sudo).returns('') ConfigureVisibilityOnHost.configure_visibility_on_host(env, '42.42.42.42', 'vagrant.test') Dir["#{dir}/*"].empty?.must_equal false File.exist?(File.join(dir, 'vagrant.test')).must_equal true Pathname(File.join(dir, 'vagrant.test')).read.must_equal CONFIG end end it 'the config file is named after the configured tld' do Dir.mktmpdir('landrush-test-dir-') do |dir| # puts "Using #{dir} for testing" Dir["#{dir}/*"].empty?.must_equal true # stub some internal methods to make sure config gets written into tmp directory ConfigureVisibilityOnHost.stubs(:config_dir).returns(Pathname(dir)) # also disable 'sudo' ConfigureVisibilityOnHost.stubs(:sudo).returns('') ConfigureVisibilityOnHost.configure_visibility_on_host(env, '42.42.42.42', 'foo.bar') Dir["#{dir}/*"].empty?.must_equal false File.exist?(File.join(dir, 'foo.bar')).must_equal true Pathname(File.join(dir, 'foo.bar')).read.must_equal CONFIG end end end end end end end