From 2c3eb6a8a169182d00f3b3b8041c43b627a757ff Mon Sep 17 00:00:00 2001 From: Humza Shahid Date: Thu, 25 Sep 2025 09:03:40 +0100 Subject: [PATCH] begin adding tests for 'dk' motion --- test/normal-delete.sml | 47 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/test/normal-delete.sml b/test/normal-delete.sml index a8296f9..d29353c 100644 --- a/test/normal-delete.sml +++ b/test/normal-delete.sml @@ -612,5 +612,50 @@ struct end) ] - val tests = [dhDelete, dlDelete, djDelete, ddDelete] + val dkDelete = describe "delete motion 'dk'" + [ test "does not delete when cursor is on first line" (fn _ => + let + (* arrange *) + val originalString = "hello\nworld\n" + val originalIdx = 0 + + val app = TestUtils.init originalString + val app = AppWith.idx (app, originalIdx) + + (* act *) + val {buffer, cursorIdx, ...} = TestUtils.updateMany (app, "dk") + + (* assert *) + val expectedString = originalString + val actualString = LineGap.toString buffer + + val expectedIdx = 0 + in + Expect.isTrue + (expectedString = actualString andalso expectedIdx = cursorIdx) + end) + , test "deletes first two lines when cursor is on second line" (fn _ => + let + (* arrange *) + val originalString = "hello\nworld\n" + val originalIdx = 6 + + val app = TestUtils.init originalString + val app = AppWith.idx (app, originalIdx) + + (* act *) + val {buffer, cursorIdx, ...} = TestUtils.updateMany (app, "dk") + + (* assert *) + val expectedString = "\n" + val actualString = LineGap.toString buffer + + val expectedIdx = 0 + in + Expect.isTrue + (expectedString = actualString andalso expectedIdx = cursorIdx) + end) + ] + + val tests = [dhDelete, dlDelete, djDelete, ddDelete, dkDelete] end