aboutsummaryrefslogtreecommitdiff
path: root/Tests/NorgKitTests/Models/NorgNodeTests.swift
diff options
context:
space:
mode:
Diffstat (limited to 'Tests/NorgKitTests/Models/NorgNodeTests.swift')
-rw-r--r--Tests/NorgKitTests/Models/NorgNodeTests.swift31
1 files changed, 31 insertions, 0 deletions
diff --git a/Tests/NorgKitTests/Models/NorgNodeTests.swift b/Tests/NorgKitTests/Models/NorgNodeTests.swift
new file mode 100644
index 0000000..5e60014
--- /dev/null
+++ b/Tests/NorgKitTests/Models/NorgNodeTests.swift
@@ -0,0 +1,31 @@
+import Foundation
+import Testing
+
+@testable import NorgKit
+
+struct NorgNodeTests {
+
+ private let block = NorgBlock.paragraph(content: [InlineSpan(text: "x")], line: 0)
+
+ @Test func defaultsToNoChildren() {
+ #expect(NorgNode(block: block).children.isEmpty)
+ }
+
+ @Test func storesBlockAndChildren() {
+ let child = NorgNode(block: block)
+ let node = NorgNode(block: block, children: [child])
+ #expect(node.block == block)
+ #expect(node.children == [child])
+ }
+
+ @Test func equatableComparesBlockAndChildren() {
+ #expect(NorgNode(block: block) == NorgNode(block: block))
+ #expect(NorgNode(block: block, children: [NorgNode(block: block)]) != NorgNode(block: block))
+ }
+
+ @Test func roundTripsThroughJSON() throws {
+ let node = NorgNode(block: block, children: [NorgNode(block: block)])
+ let data = try JSONEncoder().encode(node)
+ #expect(try JSONDecoder().decode(NorgNode.self, from: data) == node)
+ }
+}