feat: Allow tokens to be escaped
This commit is contained in:
@@ -20,6 +20,22 @@ final class LexerTests: XCTestCase {
|
||||
try expect(tokens.first) == .comment(value: "Comment", at: makeSourceMap("Comment", for: lexer))
|
||||
}
|
||||
|
||||
func testEscapedVariableToken() throws {
|
||||
let lexer = Lexer(templateString: "\\{{ Variable }}")
|
||||
let tokens = lexer.tokenize()
|
||||
|
||||
try expect(tokens.count) == 1
|
||||
try expect(tokens.first) == .text(value: "{{ Variable }}", at: makeSourceMap("{{ Variable }}", for: lexer))
|
||||
}
|
||||
|
||||
func testEscapedBehaviourToken() throws {
|
||||
let lexer = Lexer(templateString: "\\{% Variable %}")
|
||||
let tokens = lexer.tokenize()
|
||||
|
||||
try expect(tokens.count) == 1
|
||||
try expect(tokens.first) == .text(value: "{% Variable %}", at: makeSourceMap("{% Variable %}", for: lexer))
|
||||
}
|
||||
|
||||
func testVariable() throws {
|
||||
let lexer = Lexer(templateString: "{{ Variable }}")
|
||||
let tokens = lexer.tokenize()
|
||||
|
||||
@@ -15,5 +15,11 @@ final class TemplateTests: XCTestCase {
|
||||
let result = try template.render([ "name": "Kyle" ])
|
||||
try expect(result) == "Hello World"
|
||||
}
|
||||
|
||||
it("can render a template with escaped token") {
|
||||
let template: Template = "Hello \\{{ name }}"
|
||||
let result = try template.render([ "name": "Kyle" ])
|
||||
try expect(result) == "Hello {{ name }}"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user