Diff

spec/util_interpolation_spec.lua @ 11064:af1e3b7d9ea3

util.interpolation: Add '~' as the opposite of '&' (render sub-block if falsy) One more magic character consumed!
author Matthew Wild <mwild1@gmail.com>
date Wed, 09 Sep 2020 17:10:33 +0100
parent 10413:604096ce2f82
child 11065:95eb1a981ef6
line wrap: on
line diff
--- a/spec/util_interpolation_spec.lua	Tue Sep 08 22:50:43 2020 +0200
+++ b/spec/util_interpolation_spec.lua	Wed Sep 09 17:10:33 2020 +0100
@@ -32,7 +32,15 @@
 local expect_map = [[
 FOO: bar
 ]]
-
+local template_not = [[
+{thing~Thing is nil}{thing&Thing is not nil}
+]]
+local expect_not_true = [[
+Thing is not nil
+]]
+local expect_not_nil = [[
+Thing is nil
+]]
 describe("util.interpolation", function ()
 	it("renders", function ()
 		local render = require "util.interpolation".new("%b{}", string.upper, { sort = function (t) table.sort(t) return t end });
@@ -43,5 +51,7 @@
 		assert.equal(expect_func_pipe, render(template_func_pipe, { foo = { "c", "a", "d", "b", } }));
 		-- assert.equal("", render(template_func_pipe, { foo = nil })); -- FIXME
 		assert.equal(expect_map, render(template_map, { foo = { foo = "bar" } }));
+		assert.equal(expect_not_true, render(template_not, { thing = true }));
+		assert.equal(expect_not_nil, render(template_not, { thing = nil }));
 	end);
 end);