ribosome-test-0.4.0.0: test/Ribosome/Test/WindowTest.hs
module Ribosome.Test.WindowTest where
import Hedgehog ((===))
import TestError (RiboTest)
import Ribosome.Api.Window (ensureMainWindow)
import Ribosome.Msgpack.Encode (toMsgpack)
import Ribosome.Nvim.Api.Data (Window)
import Ribosome.Nvim.Api.IO (bufferSetOption, vimCommand, vimGetCurrentBuffer, vimGetCurrentWindow, vimGetWindows)
import Ribosome.Test.Run (UnitTest)
import Ribosome.Test.Unit (unitSpecDef')
setCurrentNofile :: RiboTest ()
setCurrentNofile = do
buf <- vimGetCurrentBuffer
bufferSetOption buf "buftype" (toMsgpack ("nofile" :: Text))
createNofile :: RiboTest Window
createNofile = do
initialWindow <- vimGetCurrentWindow
vimCommand "new"
setCurrentNofile
return initialWindow
findMainWindowExistingSpec :: RiboTest ()
findMainWindowExistingSpec = do
initialWindow <- createNofile
(initialWindow ===) =<< ensureMainWindow
test_findMainWindowExisting :: UnitTest
test_findMainWindowExisting =
unitSpecDef' findMainWindowExistingSpec
findMainWindowCreateSpec :: RiboTest ()
findMainWindowCreateSpec = do
setCurrentNofile
void createNofile
void ensureMainWindow
(3 ===) =<< length <$> vimGetWindows
test_findMainWindowCreate :: UnitTest
test_findMainWindowCreate =
unitSpecDef' findMainWindowCreateSpec