aboutsummaryrefslogtreecommitdiff
path: root/Tests/NorgUITests/OrdinalTests.swift
diff options
context:
space:
mode:
authorRuben Beltran del Rio <jj@r.bdr.sh>2026-06-15 14:35:36 +0200
committerRuben Beltran del Rio <jj@r.bdr.sh>2026-06-16 14:47:30 +0200
commit657aa83a5ca24dc35572c040df64a0abb85e8612 (patch)
treefe0b6fd425d8cad9dc6a28ada4ad8600e42b367e /Tests/NorgUITests/OrdinalTests.swift
Initial extraction from Norganize
Diffstat (limited to 'Tests/NorgUITests/OrdinalTests.swift')
-rw-r--r--Tests/NorgUITests/OrdinalTests.swift38
1 files changed, 38 insertions, 0 deletions
diff --git a/Tests/NorgUITests/OrdinalTests.swift b/Tests/NorgUITests/OrdinalTests.swift
new file mode 100644
index 0000000..954477c
--- /dev/null
+++ b/Tests/NorgUITests/OrdinalTests.swift
@@ -0,0 +1,38 @@
+import NorgKit
+import Testing
+
+@testable import NorgUI
+
+@Suite struct OrdinalTests {
+ private func ordered(_ level: Int) -> NorgBlock {
+ .orderedListItem(level: level, status: nil, content: [], line: 0)
+ }
+ private func unordered(_ level: Int) -> NorgBlock {
+ .unorderedListItem(level: level, status: nil, content: [], line: 0)
+ }
+ private var paragraph: NorgBlock { .paragraph(content: [], line: 0) }
+
+ @Test func numbersConsecutiveItems() {
+ #expect(orderedOrdinals([ordered(1), ordered(1), ordered(1)]) == [1, 2, 3])
+ }
+
+ @Test func countsEachLevelIndependently() {
+ let blocks = [ordered(1), ordered(2), ordered(2), ordered(1)]
+ #expect(orderedOrdinals(blocks) == [1, 1, 2, 2])
+ }
+
+ @Test func paragraphResetsNumbering() {
+ let blocks = [ordered(1), paragraph, ordered(1)]
+ #expect(orderedOrdinals(blocks) == [1, nil, 1])
+ }
+
+ @Test func unorderedItemInterruptsNumbering() {
+ let blocks = [ordered(1), unordered(1), ordered(1)]
+ #expect(orderedOrdinals(blocks) == [1, nil, 1])
+ }
+
+ @Test func siblingOrdinalsNumberOrderedNodesOnly() {
+ let nodes = [ordered(1), unordered(1), ordered(1), paragraph].map { NorgNode(block: $0) }
+ #expect(ordinals(forSiblings: nodes) == [1, nil, 2, nil])
+ }
+}