Tests for validation

This commit is contained in:
Daniel Harvey 2020-02-22 08:52:02 +00:00
parent 1b74890edb
commit 24eea83015
2 changed files with 64 additions and 0 deletions

View File

@ -6,6 +6,7 @@ import Test.Hspec
import Test.QuickCheck
import Test.QuickCheck.Monadic
import Tests.TmuxMate.Types (Session)
import qualified Tests.TmuxMate.Validate as Validate
import TmuxMate
import TmuxMate.Running
import TmuxMate.Types
@ -22,6 +23,7 @@ import TmuxMate.Types
main :: IO ()
main = hspec $ do
Validate.spec
describe "createSession" $ do
it "Creates a session if needed" $ do
createSession

View File

@ -0,0 +1,62 @@
module Tests.TmuxMate.Validate where
import Dhall
import Dhall.Core (pretty)
import Test.Hspec
import Test.QuickCheck
import Test.QuickCheck.Monadic
import Tests.TmuxMate.Types (Session)
import TmuxMate
import TmuxMate.Running
import TmuxMate.Types
( Command (..),
InTmuxSession (..),
Pane (..),
PaneCommand (..),
PaneTitle (..),
Running (..),
Session (..),
SessionName (..),
TmuxCommand (..),
ValidationError (..),
Window (..),
WindowName (..),
)
import TmuxMate.Validate
spec :: Spec
spec = do
describe "Validating Session to VSession" $ do
it "Fails on an empty name" $ do
let sesh = Session
{ sessionTitle = SessionName "",
sessionWindows = []
}
parseSession sesh
`shouldBe` Left EmptySessionName
it "Fails with no windows" $ do
let sesh = Session
{ sessionTitle = SessionName "Whoa",
sessionWindows = []
}
parseSession sesh
`shouldBe` Left NoWindows
it "Fails with empty window name" $ do
let sesh = Session
{ sessionTitle = SessionName "Whoa",
sessionWindows =
[ Window
{ windowTitle = WindowName "",
windowPanes = [Pane {paneCommand = PaneCommand "", paneTitle = PaneTitle ""}]
}
]
}
parseSession sesh
`shouldBe` Left EmptyWindowName
it "Fails with no windows" $ do
let sesh = Session
{ sessionTitle = SessionName "Whoa",
sessionWindows = [Window {windowTitle = WindowName "", windowPanes = []}]
}
parseSession sesh
`shouldBe` Left NoWindows