diff options
| author | Ruben Beltran del Rio <jj@r.bdr.sh> | 2026-06-16 12:08:21 +0200 |
|---|---|---|
| committer | Ruben Beltran del Rio <jj@r.bdr.sh> | 2026-06-16 12:22:47 +0200 |
| commit | 501fdce29e4d2c46c4708ad7f44056878e0db3fa (patch) | |
| tree | db923b77037db9f5b37600a6e34c3bb2e8a971be /Tests/NorgKitTests/Models/NorgNodeTests.swift | |
Initial extraction from Norganize1.0.0
Diffstat (limited to 'Tests/NorgKitTests/Models/NorgNodeTests.swift')
| -rw-r--r-- | Tests/NorgKitTests/Models/NorgNodeTests.swift | 31 |
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) + } +} |