51 lines
1.3 KiB
Swift
51 lines
1.3 KiB
Swift
import Spectre
|
|
@testable import Stencil
|
|
import XCTest
|
|
|
|
final class NowNodeTests: XCTestCase {
|
|
func testParsing() {
|
|
it("parses default format without any now arguments") {
|
|
#if os(Linux)
|
|
throw skip()
|
|
#else
|
|
let tokens: [Token] = [ .block(value: "now", at: .unknown) ]
|
|
let parser = TokenParser(tokens: tokens, environment: Environment())
|
|
|
|
let nodes = try parser.parse()
|
|
let node = nodes.first as? NowNode
|
|
try expect(nodes.count) == 1
|
|
try expect(node?.format.variable) == "\"yyyy-MM-dd 'at' HH:mm\""
|
|
#endif
|
|
}
|
|
|
|
it("parses now with a format") {
|
|
#if os(Linux)
|
|
throw skip()
|
|
#else
|
|
let tokens: [Token] = [ .block(value: "now \"HH:mm\"", at: .unknown) ]
|
|
let parser = TokenParser(tokens: tokens, environment: Environment())
|
|
let nodes = try parser.parse()
|
|
let node = nodes.first as? NowNode
|
|
try expect(nodes.count) == 1
|
|
try expect(node?.format.variable) == "\"HH:mm\""
|
|
#endif
|
|
}
|
|
}
|
|
|
|
func testRendering() {
|
|
it("renders the date") {
|
|
#if os(Linux)
|
|
throw skip()
|
|
#else
|
|
let node = NowNode(format: Variable("\"yyyy-MM-dd\""))
|
|
|
|
let formatter = DateFormatter()
|
|
formatter.dateFormat = "yyyy-MM-dd"
|
|
let date = formatter.string(from: Date())
|
|
|
|
try expect(try node.render(Context())) == date
|
|
#endif
|
|
}
|
|
}
|
|
}
|