add motion tests for '$' command
This commit is contained in:
@@ -925,6 +925,75 @@ val zeroMove = describe "move motion '0'"
|
|||||||
end)
|
end)
|
||||||
]
|
]
|
||||||
|
|
||||||
val tests = concat [hMove, lMove, jMove, kMove, wMove, WMove, zeroMove]
|
val dlrMove = describe "move motion '$'"
|
||||||
|
[ test "moves cursor to char before '\\n' in contiguous string" (fn _ =>
|
||||||
|
let
|
||||||
|
(* arrange *)
|
||||||
|
val buffer = LineGap.fromString "hello wor9\n"
|
||||||
|
val app = AppType.init (buffer, 0, 0)
|
||||||
|
|
||||||
|
(* act *)
|
||||||
|
val (app, _) = AppUpdate.update (app, CHAR_EVENT #"$")
|
||||||
|
in
|
||||||
|
(* assert *)
|
||||||
|
Expect.isTrue (getChr app = #"9")
|
||||||
|
end)
|
||||||
|
, test "moves cursor to char before '\\n' in split string" (fn _ =>
|
||||||
|
let
|
||||||
|
(* arrange *)
|
||||||
|
val buffer = fromList ["hel", "lo ", " wor9\n"]
|
||||||
|
val app = AppType.init (buffer, 0, 0)
|
||||||
|
|
||||||
|
(* act *)
|
||||||
|
val (app, _) = AppUpdate.update (app, CHAR_EVENT #"$")
|
||||||
|
in
|
||||||
|
(* assert *)
|
||||||
|
Expect.isTrue (getChr app = #"9")
|
||||||
|
end)
|
||||||
|
, test
|
||||||
|
"leaves cursor at same idx in contiguous string\
|
||||||
|
\when char after cursor is '\\n'"
|
||||||
|
(fn _ =>
|
||||||
|
let
|
||||||
|
(* arrange *)
|
||||||
|
val buffer = LineGap.fromString "hello\n world\n"
|
||||||
|
val app = AppType.init (buffer, 0, 0)
|
||||||
|
val app = withIdx (app, 11)
|
||||||
|
val oldIdx = #cursorIdx app
|
||||||
|
|
||||||
|
(* act *)
|
||||||
|
val (app, _) = AppUpdate.update (app, CHAR_EVENT #"$")
|
||||||
|
val newIdx = #cursorIdx app
|
||||||
|
|
||||||
|
val nchr = getChr app
|
||||||
|
val nchr = Char.toString nchr ^ "\n"
|
||||||
|
in
|
||||||
|
(* assert *)
|
||||||
|
Expect.isTrue (oldIdx = newIdx)
|
||||||
|
end)
|
||||||
|
, test
|
||||||
|
"leaves cursor at same idx in split string\
|
||||||
|
\when char after cursor is '\\n'"
|
||||||
|
(fn _ =>
|
||||||
|
let
|
||||||
|
(* arrange *)
|
||||||
|
val buffer = fromList ["hel", "lo\n", " wo", "rld", "\n"]
|
||||||
|
val app = AppType.init (buffer, 0, 0)
|
||||||
|
val app = withIdx (app, 11)
|
||||||
|
val oldIdx = #cursorIdx app
|
||||||
|
|
||||||
|
(* act *)
|
||||||
|
val (app, _) = AppUpdate.update (app, CHAR_EVENT #"$")
|
||||||
|
val newIdx = #cursorIdx app
|
||||||
|
|
||||||
|
val nchr = getChr app
|
||||||
|
val nchr = Char.toString nchr ^ "\n"
|
||||||
|
in
|
||||||
|
(* assert *)
|
||||||
|
Expect.isTrue (oldIdx = newIdx)
|
||||||
|
end)
|
||||||
|
]
|
||||||
|
|
||||||
|
val tests = concat [hMove, lMove, jMove, kMove, wMove, WMove, zeroMove, dlrMove]
|
||||||
|
|
||||||
val _ = run tests
|
val _ = run tests
|
||||||
|
|||||||
Reference in New Issue
Block a user