summaryrefslogtreecommitdiff
path: root/Omni
diff options
context:
space:
mode:
authorBen Sima <ben@bsima.me>2025-11-21 00:57:42 -0500
committerOmni Worker <bot@omni.agent>2025-11-21 06:23:19 -0500
commitbf7a6695c972b61e693aa0a239ab4fa66f369466 (patch)
treea5714ef93ffd5f1df8d41d4a5311026e1cb0e096 /Omni
parent12b5ca56dc3fb6a9ecae4a47fbc17b95cdf30627 (diff)
feat: implement t-1rdJxcd
Diffstat (limited to 'Omni')
-rw-r--r--Omni/Reproduce.hs20
-rw-r--r--Omni/Task.hs16
2 files changed, 30 insertions, 6 deletions
diff --git a/Omni/Reproduce.hs b/Omni/Reproduce.hs
new file mode 100644
index 0000000..d78406b
--- /dev/null
+++ b/Omni/Reproduce.hs
@@ -0,0 +1,20 @@
+{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+
+-- : out reproduce
+module Omni.Reproduce where
+
+import Alpha
+import Omni.Namespace (fromHaskellModule, toPath)
+
+main :: IO ()
+main = do
+ let ns1 = "Omni/Task.hs"
+ let parsed1 = fromHaskellModule ns1
+ putStrLn $ "Input: " ++ ns1
+ putStrLn $ "Parsed path: " ++ show (toPath parsed1)
+
+ let ns2 = "Omni.Task.hs"
+ let parsed2 = fromHaskellModule ns2
+ putStrLn $ "Input: " ++ ns2
+ putStrLn $ "Parsed path: " ++ show (toPath parsed2)
diff --git a/Omni/Task.hs b/Omni/Task.hs
index 01b5ad9..b6ac195 100644
--- a/Omni/Task.hs
+++ b/Omni/Task.hs
@@ -207,11 +207,11 @@ move args
tid <- getArgText args "id"
statusStr <- getArgText args "status"
let newStatus = case statusStr of
- "open" -> Open
- "in-progress" -> InProgress
- "review" -> Review
- "done" -> Done
- _ -> panic "Invalid status. Use: open, in-progress, review, or done"
+ "open" -> Open
+ "in-progress" -> InProgress
+ "review" -> Review
+ "done" -> Done
+ _ -> panic "Invalid status. Use: open, in-progress, review, or done"
updateTaskStatus tid newStatus
if isJsonMode args
then outputSuccess <| "Updated task " <> tid
@@ -375,7 +375,11 @@ unitTests =
let found = findTask upperTid tasks
case found of
Just t -> taskId t Test.@?= tid
- Nothing -> Test.assertFailure "Could not find task with upper case ID"
+ Nothing -> Test.assertFailure "Could not find task with upper case ID",
+ Test.unit "namespace normalization handles .hs suffix" <| do
+ let ns = "Omni/Task.hs"
+ validNs = Namespace.fromHaskellModule ns
+ Namespace.toPath validNs Test.@?= "Omni/Task.hs"
]
-- | Test CLI argument parsing to ensure docopt string matches actual usage