Sha256: ad7855367a69edf9a816104c915b4eb84fc5aa9ad421aa2a8ef40db40804205a

Contents?: true

Size: 1.84 KB

Versions: 1

Compression:

Stored size: 1.84 KB

Contents

require 'grit'

module MiniTest::Assertions
  def assert_contains_a_puppet_module(dir)
    assert Dir.exists?(dir), "Module folder #{dir} wasn't created"
    Dir.entries(dir).wont_be_empty
    Dir.entries(dir).must_include "manifests"
  end 

  def assert_is_git_repository(dir)
    assert Dir.entries(dir).include?(".git"),
      "Expected directory #{dir} to be a git repository"
  end

  def assert_tracks_remote(dir, remote)
    assert Grit::Repo.new(dir).git.remote.split.include?(remote),
      "Expected repo #{dir} to track remote #{remote}"
  end

  def assert_bundler_is_initialized_in(dir)
    assert Dir.entries(dir).include?(".bundle"),
      "Expected Bundler to be initialized in folder #{dir}"
  end

  def assert_rspec_puppet_is_initialized_in(dir)
    module_name = File.basename(dir).gsub(/^puppet-/, '')

    assert Dir.entries(File.join(dir, "spec", "fixtures", "modules")).include?(module_name),
      "Expected directory spec/fixtures/modules to contain subdirectory for current module"

    module_image_dir = File.join(dir, "spec", "fixtures", "modules", module_name)

    ["manifests", "lib", "files", "templates"].each do |module_component|
      assert Dir.entries(module_image_dir).include?(module_component),
        "Expected directory #{module_image_dir} to contain directory #{module_component}"

      assert File.symlink?(File.join(module_image_dir, module_component)),
        "Expected directory #{File.join(module_image_dir, module_component)} to"\
        "be a symlink to its counterpart in the module's root"
    end
  end
end

module MiniTest::Expectations
  infect_an_assertion :assert_contains_a_puppet_module, :must_contain_a_puppet_module, :only_one_argument
  infect_an_assertion :assert_is_git_repository, :must_be_a_git_repository, :only_one_argument
  infect_an_assertion :assert_tracks_remote, :must_track_remote, :do_not_flip
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
puppetry_toolbox-0.0.6.rc1 test/lib/puppetry/test/custom_assertions.rb