import { Renderer } from './ryuji'; import { test_assert_equal, log_test_results } from './endosulfan'; //tests for ryuji let renderer = new Renderer("./templates", "/components"); test_assert_equal( renderer.render( "

[[ a ]]

\n

lorem ipsum dolorum

\n
\n c: [[ html:c ]] ff: [[ d.ee.ff ]]\n
", { a: "yee haw", b: 1, c: "yee haw", d: { dd: "cheeseburgers", ee: { ff: "a" }, }, } ), "

yee haw

\n

lorem ipsum dolorum

\n
\n c: yee haw ff: <i>a</i>\n
", "simple variable test" ); test_assert_equal( renderer.render( "
\n

abcd

\n extra text: [[ if:extra_text ]][[ extra_text ]][[ endif ]]\n [[ if:extra_text2 ]][[ extra_text2 ]][[ endif ]]\n
", { editable_paragraph: true, extra_text: "", extra_text2: "this is extra text", } ), "
\n

abcd

\n extra text: \n this is extra text\n
", "if statement test" ); test_assert_equal( renderer.render( "[[ if:a ]][[ if:b ]]a and b are true[[ endif ]][[ endif ]], yay![[ if:c ]][[ if:d.a ]]but this will not show up[[ endif ]][[ endif ]]", { a: true, b: true, c: false, d: { a: false, }, } ), "a and b are true, yay!", "nested if statement test" ); test_assert_equal( renderer.render( "\n

[[ for:loop_over:item ]][[ endfor ]]

", { loop_over: [], } ), "\n

", "empty for loop test" ); test_assert_equal( renderer.render( "[[ for:letters:letter ]][[ if:letter.show ]]

[[ letter.letter ]]

[[ endif ]][[ endfor ]]", { letters: [ { letter: "a", show: true, }, { letter: "b", show: false, }, { letter: "c", show: true, }, { letter: "d", show: false, }, ], } ), "

a

c

", "nested for loop with if statement test" ); //for loop and template test_assert_equal( Renderer.remove_empty_lines( renderer.render( "
\n \n
", { numbers: [1, 2, 3], posts: [ { slug: "abc", title: "Abc!", }, { slug: "san-shi-san", title: "San Shi San", } ] } ) ), "
\n \n
", "for loop with template test" ); log_test_results();