summaryrefslogtreecommitdiff
path: root/Omni
diff options
context:
space:
mode:
authorBen Sima <ben@bensima.com>2025-11-26 13:41:07 -0500
committerBen Sima <ben@bensima.com>2025-11-26 13:41:07 -0500
commit10576f0e894c1ff5a76aee13a4c71e785e227939 (patch)
tree9a4d2699776cd0686b3b791f6fc5c1def28eb00d /Omni
parentc3745528bc770e263529459392bdcf56687fa1c7 (diff)
Jr: Sequential task IDs
All tests pass and the feature is working correctly. The sequential task 1. **Implementation**: Already present in `Omni/Task/Core.hs` with `gene 2. **Integration**: `jr task` commands use `Omni/Task.main` which levera 3. **Testing**: Added a new test `"generateId produces sequential IDs"` Task-Id: t-1o2g8gu9y2z
Diffstat (limited to 'Omni')
-rw-r--r--Omni/Task.hs16
1 files changed, 15 insertions, 1 deletions
diff --git a/Omni/Task.hs b/Omni/Task.hs
index 3f21b80..117d862 100644
--- a/Omni/Task.hs
+++ b/Omni/Task.hs
@@ -562,7 +562,6 @@ unitTests =
Just t -> taskId t Test.@?= lowerId
Nothing -> Test.assertFailure "Should find task with lowercase ID",
Test.unit "generateId produces valid ID" <| do
- -- This verifies that generated IDs are valid and accepted
tid <- generateId
let task = Task tid "Auto" WorkTask Nothing Nothing Open P2 [] Nothing (read "2025-01-01 00:00:00 UTC") (read "2025-01-01 00:00:00 UTC")
saveTask task
@@ -570,6 +569,21 @@ unitTests =
case findTask tid tasks of
Just _ -> pure ()
Nothing -> Test.assertFailure "Should find generated task",
+ Test.unit "generateId produces sequential IDs" <| do
+ tid1 <- generateId
+ tid2 <- generateId
+ tid3 <- generateId
+ T.isPrefixOf "t-" tid1 Test.@?= True
+ T.isPrefixOf "t-" tid2 Test.@?= True
+ T.isPrefixOf "t-" tid3 Test.@?= True
+ let num1 = readMaybe (T.unpack (T.drop 2 tid1)) :: Maybe Int
+ num2 = readMaybe (T.unpack (T.drop 2 tid2)) :: Maybe Int
+ num3 = readMaybe (T.unpack (T.drop 2 tid3)) :: Maybe Int
+ case (num1, num2, num3) of
+ (Just n1, Just n2, Just n3) -> do
+ (n2 == n1 + 1) Test.@?= True
+ (n3 == n2 + 1) Test.@?= True
+ _ -> Test.assertFailure "IDs should be sequential integers",
Test.unit "lowercase ID does not clash with existing uppercase ID" <| do
-- Setup: Create task with Uppercase ID
let upperId = "t-UPPER"