diff options
| author | Ben Sima <ben@bensima.com> | 2025-11-26 13:41:07 -0500 |
|---|---|---|
| committer | Ben Sima <ben@bensima.com> | 2025-11-26 13:41:07 -0500 |
| commit | 10576f0e894c1ff5a76aee13a4c71e785e227939 (patch) | |
| tree | 9a4d2699776cd0686b3b791f6fc5c1def28eb00d /Omni/Task.hs | |
| parent | c3745528bc770e263529459392bdcf56687fa1c7 (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/Task.hs')
| -rw-r--r-- | Omni/Task.hs | 16 |
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" |
