Sha256: 7702e4370391b9233aa4d1954b1074384914a941d74eb367ecd4bcc822b9b07d

Contents?: true

Size: 1.42 KB

Versions: 2

Compression:

Stored size: 1.42 KB

Contents

module SliningTestHelpers
  APP_NAME = "dummy_app"

  def remove_project_directory
    FileUtils.rm_rf(project_path)
  end

  def create_tmp_directory
    FileUtils.mkdir_p(tmp_path)
  end

  def run_slining(arguments = nil)
    Dir.chdir(tmp_path) do
      Bundler.with_clean_env do
        add_fakes_to_path
        `
          #{slining_bin} #{APP_NAME} #{arguments}
        `
      end
    end
  end

  def suspenders_help_command
    Dir.chdir(tmp_path) do
      Bundler.with_clean_env do
        `
          #{suspenders_bin} -h
        `
      end
    end
  end

  def setup_app_dependencies
    if File.exist?(project_path)
      Dir.chdir(project_path) do
        Bundler.with_clean_env do
          `bundle check || bundle install`
        end
      end
    end
  end


  def drop_dummy_database
    if File.exist?(project_path)
      Dir.chdir(project_path) do
        Bundler.with_clean_env do
          `rake db:drop`
        end
      end
    end
  end

  def add_fakes_to_path
    ENV["PATH"] = "#{support_bin}:#{ENV["PATH"]}"
  end

  def project_path
    @project_path ||= Pathname.new("#{tmp_path}/#{APP_NAME}")
  end

  private
    def tmp_path
      @tmp_path ||= Pathname.new("#{root_path}/tmp")
    end

    def slining_bin
      File.join(root_path, 'bin', 'slining')
    end

    def support_bin
      File.join(root_path, "spec", "fakes", "bin")
    end

    def root_path
      File.expand_path('../../../', __FILE__)
    end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
slining-1.7.0 spec/support/slining.rb
slining-1.6.0 spec/support/slining.rb