Software /
code /
prosody
Comparison
spec/util_interpolation_spec.lua @ 10412:b788b5257945
util.interpolation: Test template filters
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sun, 17 Nov 2019 15:06:22 +0100 |
parent | 10352:dc1e6c2fb50a |
child | 10413:604096ce2f82 |
comparison
equal
deleted
inserted
replaced
10411:db2a06b9ff98 | 10412:b788b5257945 |
---|---|
15 }]] | 15 }]] |
16 local expect_array = [[ | 16 local expect_array = [[ |
17 1. HELLO | 17 1. HELLO |
18 2. WORLD | 18 2. WORLD |
19 ]] | 19 ]] |
20 local template_func_pipe = [[ | |
21 {foo|sort#{idx}. {item} | |
22 }]] | |
23 local expect_func_pipe = [[ | |
24 1. A | |
25 2. B | |
26 3. C | |
27 4. D | |
28 ]] | |
20 local template_map = [[ | 29 local template_map = [[ |
21 {foo%{idx}: {item!} | 30 {foo%{idx}: {item!} |
22 }]] | 31 }]] |
23 local expect_map = [[ | 32 local expect_map = [[ |
24 FOO: bar | 33 FOO: bar |
25 ]] | 34 ]] |
26 | 35 |
27 describe("util.interpolation", function () | 36 describe("util.interpolation", function () |
28 it("renders", function () | 37 it("renders", function () |
29 local render = require "util.interpolation".new("%b{}", string.upper); | 38 local render = require "util.interpolation".new("%b{}", string.upper, { sort = function (t) table.sort(t) return t end }); |
30 assert.equal(expect1, render(template, { greet = "Hello", name = "world" })); | 39 assert.equal(expect1, render(template, { greet = "Hello", name = "world" })); |
31 assert.equal(expect2, render(template, { greet = "Hello" })); | 40 assert.equal(expect2, render(template, { greet = "Hello" })); |
32 assert.equal(expect3, render(template, { name = "you" })); | 41 assert.equal(expect3, render(template, { name = "you" })); |
33 assert.equal(expect_array, render(template_array, { foo = { "Hello", "World" } })); | 42 assert.equal(expect_array, render(template_array, { foo = { "Hello", "World" } })); |
43 assert.equal(expect_func_pipe, render(template_func_pipe, { foo = { "c", "a", "d", "b", } })); | |
34 assert.equal(expect_map, render(template_map, { foo = { foo = "bar" } })); | 44 assert.equal(expect_map, render(template_map, { foo = { foo = "bar" } })); |
35 end); | 45 end); |
36 end); | 46 end); |