From 501fdce29e4d2c46c4708ad7f44056878e0db3fa Mon Sep 17 00:00:00 2001 From: Ruben Beltran del Rio Date: Tue, 16 Jun 2026 12:08:21 +0200 Subject: Initial extraction from Norganize --- Tests/NorgKitTests/Models/TaskStatusTests.swift | 54 +++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 Tests/NorgKitTests/Models/TaskStatusTests.swift (limited to 'Tests/NorgKitTests/Models/TaskStatusTests.swift') diff --git a/Tests/NorgKitTests/Models/TaskStatusTests.swift b/Tests/NorgKitTests/Models/TaskStatusTests.swift new file mode 100644 index 0000000..a00e50c --- /dev/null +++ b/Tests/NorgKitTests/Models/TaskStatusTests.swift @@ -0,0 +1,54 @@ +import Foundation +import Testing + +@testable import NorgKit + +struct TaskStatusTests { + + @Test func parsesEveryMarker() { + #expect(TaskStatus(marker: " ") == .undone) + #expect(TaskStatus(marker: "x") == .done) + #expect(TaskStatus(marker: "?") == .needsInput) + #expect(TaskStatus(marker: "!") == .urgent) + #expect(TaskStatus(marker: "+") == .recurring) + #expect(TaskStatus(marker: "-") == .pending) + #expect(TaskStatus(marker: "=") == .onHold) + #expect(TaskStatus(marker: "_") == .cancelled) + } + + @Test func rejectsUnknownMarker() { + #expect(TaskStatus(marker: "z") == nil) + } + + @Test func parsesEveryMarkerByte() { + #expect(TaskStatus(markerByte: UInt8(ascii: " ")) == .undone) + #expect(TaskStatus(markerByte: UInt8(ascii: "x")) == .done) + #expect(TaskStatus(markerByte: UInt8(ascii: "?")) == .needsInput) + #expect(TaskStatus(markerByte: UInt8(ascii: "!")) == .urgent) + #expect(TaskStatus(markerByte: UInt8(ascii: "+")) == .recurring) + #expect(TaskStatus(markerByte: UInt8(ascii: "-")) == .pending) + #expect(TaskStatus(markerByte: UInt8(ascii: "=")) == .onHold) + #expect(TaskStatus(markerByte: UInt8(ascii: "_")) == .cancelled) + } + + @Test func rejectsUnknownMarkerByte() { + #expect(TaskStatus(markerByte: UInt8(ascii: "z")) == nil) + } + + @Test func idEqualsRawValue() { + for status in TaskStatus.allCases { + #expect(status.id == status.rawValue) + } + } + + @Test func rawValuesMatchMarkers() { + #expect(TaskStatus.undone.rawValue == " ") + #expect(TaskStatus.done.rawValue == "x") + #expect(TaskStatus.allCases.count == 8) + } + + @Test func roundTripsThroughJSON() throws { + let data = try JSONEncoder().encode(TaskStatus.urgent) + #expect(try JSONDecoder().decode(TaskStatus.self, from: data) == .urgent) + } +} -- cgit