feat: Working on node builder
This commit is contained in:
70
Tests/CliDocTests/CliDocTests.swift
Normal file
70
Tests/CliDocTests/CliDocTests.swift
Normal file
@@ -0,0 +1,70 @@
|
||||
@_spi(Internal) import CliDoc
|
||||
import Testing
|
||||
|
||||
@Test
|
||||
func testNodeBuilder() {
|
||||
let node = AnyNode {
|
||||
Text("foo").color(.green).style(.bold)
|
||||
NewLine()
|
||||
Text("bar").repeating(2)
|
||||
}
|
||||
let expected = """
|
||||
\("foo".green.bold)
|
||||
barbar
|
||||
"""
|
||||
#expect(node.render() == expected)
|
||||
}
|
||||
|
||||
@Test(
|
||||
arguments: [
|
||||
(true, "foo bar"),
|
||||
(false, """
|
||||
foo
|
||||
bar
|
||||
""")
|
||||
]
|
||||
)
|
||||
func testSection(
|
||||
inline: Bool,
|
||||
expected: String
|
||||
) {
|
||||
let node = AnyNode {
|
||||
Section(
|
||||
header: "foo",
|
||||
separator: inline ? Space().eraseToAnyNode() : NewLine().eraseToAnyNode()
|
||||
) {
|
||||
Text("bar")
|
||||
}
|
||||
}
|
||||
|
||||
print(node.render())
|
||||
#expect(node.render() == expected)
|
||||
}
|
||||
|
||||
@Test
|
||||
func testHeader() {
|
||||
let header = Header("Foo")
|
||||
let expected = "\("Foo".yellow.bold)"
|
||||
#expect(header.render() == expected)
|
||||
}
|
||||
|
||||
@Test
|
||||
func testGroup() {
|
||||
let group = Group {
|
||||
Text("foo")
|
||||
Text("bar")
|
||||
}
|
||||
|
||||
print(group.render())
|
||||
#expect(group.render() == "foo bar")
|
||||
|
||||
let group2 = Group(separator: .newLine()) {
|
||||
Text("foo")
|
||||
Text("bar")
|
||||
}
|
||||
let expected = """
|
||||
foo
|
||||
bar
|
||||
"""
|
||||
#expect(group2.render() == expected)
|
||||
}
|
||||
Reference in New Issue
Block a user