packages feed

ribosome-0.9.9.9: test/Ribosome/Test/BufferTest.hs

module Ribosome.Test.BufferTest where

import Path (relfile)
import qualified Polysemy.Test as Test
import Polysemy.Test (UnitTest, assert, assertEq, evalMaybe, (/==), (===))

import Ribosome.Api.Buffer (bufferCount, bufferForFile, bufferIsFile, edit)
import Ribosome.Data.FileBuffer (FileBuffer (FileBuffer))
import Ribosome.Host.Api.Effect (nvimGetCurrentBuf)
import Ribosome.Host.Test.Run (embedTest_)

test_bufferForFile :: UnitTest
test_bufferForFile =
  embedTest_ do
    file1 <- Test.tempFile [] [relfile|file.x|]
    file2 <- Test.tempFile [] [relfile|file.y|]
    edit file1
    edit file2
    assertEq 2 =<< bufferCount
    cb <- nvimGetCurrentBuf
    assert =<< bufferIsFile cb
    FileBuffer buf path <- evalMaybe =<< bufferForFile file1
    cb /== buf
    path === file1