Quote expressions instead of hand-writing them
This makes it much easier to grok.
This commit is contained in:
@@ -4,8 +4,7 @@ defmodule BlanksTest do
|
|||||||
test "simple replacement" do
|
test "simple replacement" do
|
||||||
ast = quote do: 1 + ___
|
ast = quote do: 1 + ___
|
||||||
|
|
||||||
mangled = Blanks.replace(ast, 37)
|
assert Blanks.replace(ast, 37) == quote(do: 1 + 37)
|
||||||
assert {:+, [context: BlanksTest, import: Kernel], [1, 37]} == mangled
|
|
||||||
end
|
end
|
||||||
|
|
||||||
test "Work with multiple different replacements" do
|
test "Work with multiple different replacements" do
|
||||||
@@ -14,15 +13,15 @@ defmodule BlanksTest do
|
|||||||
end
|
end
|
||||||
|
|
||||||
test "complex example" do
|
test "complex example" do
|
||||||
ast = [do: {:assert, [line: 5], [{:==, [line: 5], [true, {:___, [], __MODULE__}]}]}]
|
ast = quote do: assert true == ___
|
||||||
|
|
||||||
assert [do: {:assert, [line: 5], [{:==, [line: 5], [true, true]}]}] == Blanks.replace(ast, true)
|
assert Blanks.replace(ast, true) == quote(do: assert true == true)
|
||||||
end
|
end
|
||||||
|
|
||||||
test "multiple arguments" do
|
test "multiple arguments" do
|
||||||
ast = [do: {:assert, [line: 5], [{:==, [line: 5], [{:___, [], __MODULE__}, {:___, [], __MODULE__}]}]}]
|
ast = quote do: assert ___ == ___
|
||||||
|
|
||||||
assert [do: {:assert, [line: 5], [{:==, [line: 5], [true, false]}]}] == Blanks.replace(ast, [true, false])
|
assert Blanks.replace(ast, [true, false]) == quote(do: assert true == false)
|
||||||
end
|
end
|
||||||
|
|
||||||
test "counts simple blanks" do
|
test "counts simple blanks" do
|
||||||
@@ -32,7 +31,7 @@ defmodule BlanksTest do
|
|||||||
end
|
end
|
||||||
|
|
||||||
test "counts multiple blanks" do
|
test "counts multiple blanks" do
|
||||||
ast = [do: {:assert, [line: 5], [{:==, [line: 5], [{:___, [], __MODULE__}, {:___, __MODULE__}]}]}]
|
ast = quote do: assert ___ == ___
|
||||||
|
|
||||||
assert Blanks.count(ast) == 2
|
assert Blanks.count(ast) == 2
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user