aboutsummaryrefslogtreecommitdiff
path: root/Tests/NorgKitTests/Models/NorgNodeTests.swift
blob: 5e60014ecba8478cb647aaca2d0b74dc476f05c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
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)
  }
}