r7rs-tests/snow/arvyy/mustache-test/sections.scm

85 lines
3.2 KiB
Scheme

(define (run-tests/sections)
(test-mustache "Truthy"
'((boolean . #t))
"\"{{#boolean}}This should be rendered.{{/boolean}}\""
"\"This should be rendered.\"")
(test-mustache "Falsey"
'((boolean . #f))
"\"{{#boolean}}This should not be rendered.{{/boolean}}\""
"\"\"")
;; "Null is falsey" test is skipped; no meaningful value for null
(test-mustache "Context"
'((context . ((name . "Joe"))))
"\"{{#context}}Hi {{name}}.{{/context}}\""
"\"Hi Joe.\"")
(test-mustache "Parent contexts"
'((a . "foo")
(b . "wrong")
(sec . ((b . "bar")))
(c . ((d . "baz"))))
"\"{{#sec}}{{a}}, {{b}}, {{c.d}}{{/sec}}\""
"\"foo, bar, baz\"")
(test-mustache "Variable test"
'((foo . "bar"))
"\"{{#foo}}{{.}} is {{foo}}{{/foo}}\""
"\"bar is bar\"")
(test-mustache "List Contexts"
'((tops . #(((tname . ((upper . "A")
(lower . "a")))
(middles . #(((mname . "1")
(bottoms . #(((bname . "x"))
((bname . "y")))))))))))
"{{#tops}}{{#middles}}{{tname.lower}}{{mname}}.{{#bottoms}}{{tname.upper}}{{mname}}{{bname}}.{{/bottoms}}{{/middles}}{{/tops}}"
"a1.A1x.A1y.")
(test-mustache "Deeply Nested Contexts"
'((a . ((one . 1)))
(b . ((two . 2)))
(c . ((three . 3)
(d . ((four . 4)
(five . 5))))))
"
{{#a}}
{{one}}
{{#b}}
{{one}}{{two}}{{one}}
{{#c}}
{{one}}{{two}}{{three}}{{two}}{{one}}
{{#d}}
{{one}}{{two}}{{three}}{{four}}{{three}}{{two}}{{one}}
{{#five}}
{{one}}{{two}}{{three}}{{four}}{{five}}{{four}}{{three}}{{two}}{{one}}
{{one}}{{two}}{{three}}{{four}}{{.}}6{{.}}{{four}}{{three}}{{two}}{{one}}
{{one}}{{two}}{{three}}{{four}}{{five}}{{four}}{{three}}{{two}}{{one}}
{{/five}}
{{one}}{{two}}{{three}}{{four}}{{three}}{{two}}{{one}}
{{/d}}
{{one}}{{two}}{{three}}{{two}}{{one}}
{{/c}}
{{one}}{{two}}{{one}}
{{/b}}
{{one}}
{{/a}}
"
"
1
121
12321
1234321
123454321
12345654321
123454321
1234321
12321
121
1
"
))