Add testPartialInSubfolder (#72)
* Add testPartialInSubfolder * Replace windows folder separator with mac/linux folder separator
This commit is contained in:
@@ -31,7 +31,11 @@ extension MustacheLibrary {
|
|||||||
guard let template = try MustacheTemplate(filename: directory + path) else { continue }
|
guard let template = try MustacheTemplate(filename: directory + path) else { continue }
|
||||||
// drop ".mustache" from path to get name
|
// drop ".mustache" from path to get name
|
||||||
let name = String(path.dropLast(extWithDot.count))
|
let name = String(path.dropLast(extWithDot.count))
|
||||||
|
#if os(Windows)
|
||||||
|
templates[name.replacingOccurrences(of: "\\", with: "/")] = template
|
||||||
|
#else
|
||||||
templates[name] = template
|
templates[name] = template
|
||||||
|
#endif
|
||||||
} catch let error as MustacheTemplate.ParserError {
|
} catch let error as MustacheTemplate.ParserError {
|
||||||
throw ParserError(filename: path, context: error.context, error: error.error)
|
throw ParserError(filename: path, context: error.context, error: error.error)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,6 +48,24 @@ final class LibraryTests: XCTestCase {
|
|||||||
XCTAssertEqual(library.render(object, withTemplate: "test"), "<test><value>value1</value><value>value2</value></test>")
|
XCTAssertEqual(library.render(object, withTemplate: "test"), "<test><value>value1</value><value>value2</value></test>")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func testPartialInSubfolder() async throws {
|
||||||
|
let fs = FileManager()
|
||||||
|
try? fs.createDirectory(atPath: "templates/subfolder", withIntermediateDirectories: true)
|
||||||
|
let mustache = Data("<test>{{#value}}<value>{{.}}</value>{{/value}}</test>".utf8)
|
||||||
|
try mustache.write(to: URL(fileURLWithPath: "templates/subfolder/test-partial.mustache"))
|
||||||
|
let mustache2 = Data("{{>subfolder/test-partial}}".utf8)
|
||||||
|
try mustache2.write(to: URL(fileURLWithPath: "templates/test.mustache"))
|
||||||
|
defer {
|
||||||
|
XCTAssertNoThrow(try fs.removeItem(atPath: "templates/subfolder/test-partial.mustache"))
|
||||||
|
XCTAssertNoThrow(try fs.removeItem(atPath: "templates/test.mustache"))
|
||||||
|
XCTAssertNoThrow(try fs.removeItem(atPath: "templates"))
|
||||||
|
}
|
||||||
|
|
||||||
|
let library = try await MustacheLibrary(directory: "./templates")
|
||||||
|
let object = ["value": ["value1", "value2"]]
|
||||||
|
XCTAssertEqual(library.render(object, withTemplate: "test"), "<test><value>value1</value><value>value2</value></test>")
|
||||||
|
}
|
||||||
|
|
||||||
func testLibraryParserError() async throws {
|
func testLibraryParserError() async throws {
|
||||||
let fs = FileManager()
|
let fs = FileManager()
|
||||||
try? fs.createDirectory(atPath: "templates", withIntermediateDirectories: false)
|
try? fs.createDirectory(atPath: "templates", withIntermediateDirectories: false)
|
||||||
|
|||||||
Reference in New Issue
Block a user