diff options
| author | Ben Sima <ben@bsima.me> | 2025-11-21 00:57:42 -0500 |
|---|---|---|
| committer | Omni Worker <bot@omni.agent> | 2025-11-21 06:23:19 -0500 |
| commit | bf7a6695c972b61e693aa0a239ab4fa66f369466 (patch) | |
| tree | a5714ef93ffd5f1df8d41d4a5311026e1cb0e096 | |
| parent | 12b5ca56dc3fb6a9ecae4a47fbc17b95cdf30627 (diff) | |
feat: implement t-1rdJxcd
| -rw-r--r-- | Omni/Reproduce.hs | 20 | ||||
| -rw-r--r-- | Omni/Task.hs | 16 |
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 |
