Custom renderable fixups (#13)
* Mark HBMustacheCustomRenderable public * Add HBMustacheCustomRenderable tests * swift format
This commit is contained in:
@@ -14,7 +14,7 @@
|
|||||||
|
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
protocol HBMustacheCustomRenderable {
|
public protocol HBMustacheCustomRenderable {
|
||||||
var renderText: String { get }
|
var renderText: String { get }
|
||||||
var isNull: Bool { get }
|
var isNull: Bool { get }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
//
|
//
|
||||||
//===----------------------------------------------------------------------===//
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
@testable import HummingbirdMustache
|
import HummingbirdMustache
|
||||||
import XCTest
|
import XCTest
|
||||||
|
|
||||||
final class TemplateRendererTests: XCTestCase {
|
final class TemplateRendererTests: XCTestCase {
|
||||||
@@ -245,6 +245,26 @@ final class TemplateRendererTests: XCTestCase {
|
|||||||
""")
|
""")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// test HBMustacheCustomRenderable
|
||||||
|
func testCustomRenderable() throws {
|
||||||
|
let template = try HBMustacheTemplate(string: "{{.}}")
|
||||||
|
let template1 = try HBMustacheTemplate(string: "{{#.}}not null{{/.}}")
|
||||||
|
let template2 = try HBMustacheTemplate(string: "{{^.}}null{{/.}}")
|
||||||
|
struct Object: HBMustacheCustomRenderable {
|
||||||
|
let value: String
|
||||||
|
|
||||||
|
var renderText: String { self.value.uppercased() }
|
||||||
|
var isNull: Bool { self.value == "null" }
|
||||||
|
}
|
||||||
|
let testObject = Object(value: "test")
|
||||||
|
let nullObject = Object(value: "null")
|
||||||
|
XCTAssertEqual(template.render(testObject), "TEST")
|
||||||
|
XCTAssertEqual(template1.render(testObject), "not null")
|
||||||
|
XCTAssertEqual(template1.render(nullObject), "")
|
||||||
|
XCTAssertEqual(template2.render(testObject), "")
|
||||||
|
XCTAssertEqual(template2.render(nullObject), "null")
|
||||||
|
}
|
||||||
|
|
||||||
func testPerformance() throws {
|
func testPerformance() throws {
|
||||||
let template = try HBMustacheTemplate(string: """
|
let template = try HBMustacheTemplate(string: """
|
||||||
{{#repo}}
|
{{#repo}}
|
||||||
|
|||||||
Reference in New Issue
Block a user