Sha256: f27f4e013a784efb61f763820f285220998791744264251cdf4908eb87bd9b9e

Contents?: true

Size: 1.86 KB

Versions: 2

Compression:

Stored size: 1.86 KB

Contents

require "./lib/roger/release.rb"
require "./lib/roger/release/cleaner.rb"
require "test/unit"

# Test Roger Cleaner
class CleanerTest < ::Test::Unit::TestCase
  def setup
    @base = File.dirname(__FILE__) + "/../../project"
  end

  def test_use_array_as_pattern
    dirs = %w(dir1 dir2)

    create_and_assert_directories(dirs)

    project = Roger::Project.new(@base)
    release = Roger::Release.new(project, build_path: Pathname.new(@base))

    cleaner = Roger::Release::Cleaner.new(dirs)
    cleaner.call(release)

    dirs.each do |dir|
      path = @base + "/" + dir
      assert(!File.directory?(path))
    end
  end

  def test_only_clean_inside_build_path_relative
    cleaner = Roger::Release::Cleaner.new(@base)
    inside_build_path = cleaner.send :inside_build_path?, @base, @base + "/html/formats"

    assert(inside_build_path, "Only delete content inside build_path")
  end

  def test_only_clean_inside_build_path_absolute
    path = Pathname.new(@base).realpath.to_s
    cleaner = Roger::Release::Cleaner.new(path)

    inside_build_path = cleaner.send :inside_build_path?, path, @base + "/html/formats"

    assert(inside_build_path, "Only delete content inside build_path")
  end

  def test_dont_clean_outside_build_path
    path = File.dirname(__FILE__)
    cleaner = Roger::Release::Cleaner.new(path)

    assert_raise RuntimeError do
      cleaner.send :inside_build_path?, path, @base + "/html/formats"
    end
  end

  def test_dont_fail_on_nonexistent_files
    path = "bla"
    cleaner = Roger::Release::Cleaner.new(path)

    assert(
      !cleaner.send(:inside_build_path?, @base + "/html/formats", path),
      "Failed on nonexistent directories/files"
    )
  end

  protected

  def create_and_assert_directories(dirs)
    dirs.each do |dir|
      path = @base + "/" + dir
      mkdir path unless File.directory?(path)
      assert(File.directory?(path))
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
roger-1.2.2 test/unit/release/cleaner_test.rb
roger-1.2.1 test/unit/release/cleaner_test.rb