Introduce variable filters
This commit is contained in:
23
StencilTests/FilterTests.swift
Normal file
23
StencilTests/FilterTests.swift
Normal file
@@ -0,0 +1,23 @@
|
||||
import XCTest
|
||||
import Stencil
|
||||
|
||||
|
||||
class FilterTests: XCTestCase {
|
||||
func testCapitalizeFilter() {
|
||||
let template = Template(templateString: "{{ name|capitalize }}")
|
||||
let result = try? template.render(Context(dictionary: ["name": "kyle"]))
|
||||
XCTAssertEqual(result, "Kyle")
|
||||
}
|
||||
|
||||
func testUppercaseFilter() {
|
||||
let template = Template(templateString: "{{ name|uppercase }}")
|
||||
let result = try? template.render(Context(dictionary: ["name": "kyle"]))
|
||||
XCTAssertEqual(result, "KYLE")
|
||||
}
|
||||
|
||||
func testLowercaseFilter() {
|
||||
let template = Template(templateString: "{{ name|lowercase }}")
|
||||
let result = try? template.render(Context(dictionary: ["name": "Kyle"]))
|
||||
XCTAssertEqual(result, "kyle")
|
||||
}
|
||||
}
|
||||
@@ -17,13 +17,14 @@ class TokenParserTests: XCTestCase {
|
||||
|
||||
func testParsingVariableToken() {
|
||||
let parser = TokenParser(tokens: [
|
||||
Token.Variable(value: "name")
|
||||
])
|
||||
Token.Variable(value: "'name'")
|
||||
])
|
||||
|
||||
assertSuccess(try parser.parse()) { nodes in
|
||||
let node = nodes.first as! VariableNode
|
||||
XCTAssertEqual(nodes.count, 1)
|
||||
XCTAssertEqual(node.variable, Variable("name"))
|
||||
let result = try? node.render(Context())
|
||||
XCTAssertEqual(result, "name")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user