handling unknown filter errors
This commit is contained in:
@@ -42,7 +42,7 @@ func testEnvironment() {
|
||||
return error
|
||||
}
|
||||
|
||||
$0.it("throws syntax error on invalid for tag syntax") {
|
||||
$0.it("reports syntax error on invalid for tag syntax") {
|
||||
let template: Template = "Hello {% for name in %}{{ name }}, {% endfor %}!"
|
||||
let error = expectedSyntaxError(
|
||||
token: "{% for name in %}",
|
||||
@@ -52,7 +52,7 @@ func testEnvironment() {
|
||||
try expect(try environment.renderTemplate(string: template.templateString, context:["names": ["Bob", "Alice"]])).toThrow(error)
|
||||
}
|
||||
|
||||
$0.it("throws syntax error on missing endfor") {
|
||||
$0.it("reports syntax error on missing endfor") {
|
||||
let template: Template = "{% for name in names %}{{ name }}"
|
||||
let error = expectedSyntaxError(
|
||||
token: "{% for name in names %}",
|
||||
@@ -62,7 +62,7 @@ func testEnvironment() {
|
||||
try expect(try environment.renderTemplate(string: template.templateString, context: ["names": ["Bob", "Alice"]])).toThrow(error)
|
||||
}
|
||||
|
||||
$0.it("throws syntax error on unknown tag") {
|
||||
$0.it("reports syntax error on unknown tag") {
|
||||
let template: Template = "{% for name in names %}{{ name }}{% end %}"
|
||||
let error = expectedSyntaxError(
|
||||
token: "{% end %}",
|
||||
@@ -72,6 +72,58 @@ func testEnvironment() {
|
||||
try expect(try environment.renderTemplate(string: template.templateString, context: ["names": ["Bob", "Alice"]])).toThrow(error)
|
||||
}
|
||||
|
||||
$0.context("given unknown filter") {
|
||||
func expectedFilterError(token: String, template: Template) -> TemplateSyntaxError {
|
||||
return expectedSyntaxError(
|
||||
token: token,
|
||||
template: template,
|
||||
description: "Unknown filter 'unknown'"
|
||||
)
|
||||
}
|
||||
|
||||
$0.it("reports syntax error in for tag") {
|
||||
let template: Template = "{% for name in names|unknown %}{{ name }}{% endfor %}"
|
||||
let error = expectedFilterError(token: "names|unknown", template: template)
|
||||
try expect(try environment.renderTemplate(string: template.templateString, context: ["names": ["Bob", "Alice"]])).toThrow(error)
|
||||
}
|
||||
|
||||
$0.it("reports syntax error in for-where tag") {
|
||||
let template: Template = "{% for name in names where name|unknown %}{{ name }}{% endfor %}"
|
||||
let error = expectedFilterError(token: "name|unknown", template: template)
|
||||
try expect(try environment.renderTemplate(string: template.templateString, context: ["names": ["Bob", "Alice"]])).toThrow(error)
|
||||
}
|
||||
|
||||
$0.it("reports syntax error in if tag") {
|
||||
let template: Template = "{% if name|unknown %}{{ name }}{% endif %}"
|
||||
let error = expectedFilterError(token: "name|unknown", template: template)
|
||||
try expect(try environment.renderTemplate(string: template.templateString, context: ["name": "Bob"])).toThrow(error)
|
||||
}
|
||||
|
||||
$0.it("reports syntax error in elif tag") {
|
||||
let template: Template = "{% if name %}{{ name }}{% elif name|unknown %}{% endif %}"
|
||||
let error = expectedFilterError(token: "name|unknown", template: template)
|
||||
try expect(try environment.renderTemplate(string: template.templateString, context: ["name": "Bob"])).toThrow(error)
|
||||
}
|
||||
|
||||
$0.it("reports syntax error in ifnot tag") {
|
||||
let template: Template = "{% ifnot name|unknown %}{{ name }}{% endif %}"
|
||||
let error = expectedFilterError(token: "name|unknown", template: template)
|
||||
try expect(try environment.renderTemplate(string: template.templateString, context: ["name": "Bob"])).toThrow(error)
|
||||
}
|
||||
|
||||
$0.it("reports syntax error in filter tag") {
|
||||
let template: Template = "{% filter unknown %}Text{% endfilter %}"
|
||||
let error = expectedFilterError(token: "{% filter unknown %}", template: template)
|
||||
try expect(try environment.renderTemplate(string: template.templateString, context: [:])).toThrow(error)
|
||||
}
|
||||
|
||||
$0.it("reports syntax error in variable tag") {
|
||||
let template: Template = "{{ name|unknown }}"
|
||||
let error = expectedFilterError(token: "name|unknown", template: template)
|
||||
try expect(try environment.renderTemplate(string: template.templateString, context: ["name": "Bob"])).toThrow(error)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user