Current section

Files

Jump to
nerves_bootstrap test mix_helper.exs
Raw

test/mix_helper.exs

Mix.shell(Mix.Shell.Process)
defmodule MixHelper do
import ExUnit.Assertions
# Much <3 to Phoenix for this code
def tmp_path do
Path.expand("../../tmp", __DIR__)
end
def in_tmp(which, function) do
path = Path.join(tmp_path(), to_string(which))
File.rm_rf!(path)
File.mkdir_p!(path)
File.cd!(path, function)
end
def assert_file(file) do
assert File.regular?(file), "Expected #{file} to exist, but does not"
end
def refute_file(file) do
refute File.regular?(file), "Expected #{file} to not exist, but it does"
end
def assert_file(file, match) do
cond do
is_list(match) ->
assert_file(file, &Enum.each(match, fn m -> assert &1 =~ m end))
is_binary(match) or Regex.regex?(match) ->
assert_file(file, &assert(&1 =~ match))
is_function(match, 1) ->
assert_file(file)
match.(File.read!(file))
true ->
raise inspect({file, match})
end
end
end