From 2c7e861239d4d522a1d8715668272c99ae722b9f Mon Sep 17 00:00:00 2001 From: Marc McIntosh Date: Thu, 5 Sep 2024 13:36:07 +0200 Subject: [PATCH] fix: events for diff and new file. --- .../smallcloud/refactai/panes/sharedchat/Events.kt | 9 ++++++--- .../refactai/panes/sharedchat/EventsTest.kt | 12 ++++++++++++ 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/src/main/kotlin/com/smallcloud/refactai/panes/sharedchat/Events.kt b/src/main/kotlin/com/smallcloud/refactai/panes/sharedchat/Events.kt index dc398ea4..2414f070 100644 --- a/src/main/kotlin/com/smallcloud/refactai/panes/sharedchat/Events.kt +++ b/src/main/kotlin/com/smallcloud/refactai/panes/sharedchat/Events.kt @@ -70,12 +70,15 @@ class Events { Setup.OpenExternalUrl(url) } + EventNames.FromChat.PASTE_DIFF.value -> payload?.asString?.let { Events.Editor.Paste(it) } + + // EventNames.FromChat.FIM_READY.value -> p2?.deserialize(payload, Fim.Ready::class.java) EventNames.FromChat.FIM_REQUEST.value -> Fim.Request() EventNames.FromChat.OPEN_HOTKEYS.value -> OpenHotKeys() EventNames.FromChat.OPEN_FILE.value -> { - val payload: OpenFilePayload = p2?.deserialize(payload, OpenFilePayload::class.java) ?: return null - OpenFile(payload) + val file: OpenFilePayload = p2?.deserialize(payload, OpenFilePayload::class.java) ?: return null + OpenFile(file) } else -> null } @@ -247,7 +250,7 @@ class Events { class Editor { data class ContentPayload( - val content: String + val payload: String ): Payload() data class NewFile( diff --git a/src/test/kotlin/com/smallcloud/refactai/panes/sharedchat/EventsTest.kt b/src/test/kotlin/com/smallcloud/refactai/panes/sharedchat/EventsTest.kt index 2a5854c5..7cdc38c4 100644 --- a/src/test/kotlin/com/smallcloud/refactai/panes/sharedchat/EventsTest.kt +++ b/src/test/kotlin/com/smallcloud/refactai/panes/sharedchat/EventsTest.kt @@ -42,4 +42,16 @@ class EventsTest { assertEquals(expected, result) } + @Test + fun parsePasteBackMessage() { + val message = """{"type":"ide/diffPasteBack","payload":"test"}""" + val expected = Events.Editor.Paste("test") + val result = Events.parse(message) + assertNotNull(result) + assertEquals(expected.type, result?.type) + assertEquals(expected.payload, result?.payload) + assertEquals(expected.content, "test") + + } + } \ No newline at end of file