packages feed

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

module Ribosome.Test.UndoTest where

import Polysemy.Test (UnitTest, assertEq)

import Ribosome.Api.Buffer (currentBufferContent, setCurrentBufferContent)
import Ribosome.Api.Register (setregLine, unnamedRegister)
import Ribosome.Api.Window (setCurrentCursor)
import Ribosome.Host.Api.Effect (nvimCommand)
import Ribosome.Host.Test.Run (embedTest_)

test_undo :: UnitTest
test_undo =
  embedTest_ do
    setCurrentBufferContent orig
    setCurrentCursor 1 0
    setregLine unnamedRegister new
    nvimCommand "normal! p"
    assertEq (orig <> new) =<< currentBufferContent
    nvimCommand "undo"
    assertEq orig =<< currentBufferContent
  where
    orig =
      ["line1", "line2"]
    new =
      ["new1", "new2"]