test_that("input validation works", { expect_error(parse_template("Hey", .config = TRUE)) }) test_that("storing parsed document works", { x <- parse_template("Hello {{ name }}!") expect_s3_class(x, "jinjar_template") expect_equal(render(x, name = "world"), "Hello world!") expect_equal(render(x, name = "David"), "Hello David!") }) cli::test_that_cli("printing parsed document works", { template <- 'Humans of A New Hope {# put a comment here #} {% for person in people -%} {% if "A New Hope" in person.films and default(person.species, "Unknown") == "Human" -%} * {{ person.name }} ({{ person.homeworld }}) {% endif -%} {% endfor -%} ' x <- parse_template(template) expect_snapshot(print(x, n = Inf)) expect_snapshot(print(x, n = 5)) expect_error(print(x, n = 2.5)) }) cli::test_that_cli("print spans with overlap works", { tmpl <- "{# {{ this }} is a {{ comment }} #}" x <- parse_template(tmpl) expect_snapshot(print(x)) }) cli::test_that_cli("parse error", { expect_snapshot(parse_template("Hello {{ name }!"), error = TRUE) })