packages feed

cachix-1.7.5: test/Daemon/ProtocolSpec.hs

module Daemon.ProtocolSpec where

import Cachix.Daemon.Protocol (splitMessages)
import Protolude
import Test.Hspec

spec :: Spec
spec = do
  describe "split messages" $ do
    forM_ testCases $ \(input, output) ->
      it (show input) $
        splitMessages input `shouldBe` output

testCases :: [(ByteString, ([ByteString], ByteString))]
testCases =
  [ ("hello\n", (["hello"], "")),
    ("hello\nthere\n", (["hello", "there"], "")),
    ("hello\nthere", (["hello"], "there")),
    ("", ([], "")),
    ("\n", ([], "")),
    ("\n\n", ([], "")),
    ("\nhello\n", (["hello"], ""))
  ]