From aa8e45912a97a8d6f9b79544648a4347b6229c7a Mon Sep 17 00:00:00 2001 From: Florian Egger Date: Wed, 6 May 2026 17:21:12 +0200 Subject: [PATCH] Update chat view tests to use new event handlers --- tests/chat-view.test.ts | 49 +++++++++++++++++++++++++++-------------- 1 file changed, 33 insertions(+), 16 deletions(-) diff --git a/tests/chat-view.test.ts b/tests/chat-view.test.ts index 81102ae..adfa64a 100755 --- a/tests/chat-view.test.ts +++ b/tests/chat-view.test.ts @@ -261,7 +261,9 @@ describe('ChatView', () => { await (view as any).handleUserInput('test'); expect(chatSpy).toHaveBeenCalled(); - expect(consoleSpy).toHaveBeenCalledWith('Error handling user input:', expect.any(Error)); + expect(consoleSpy).toHaveBeenCalledWith( + 'Ollama Plugin Error [ChatView.handleUserInput]: Network error' + ); }); it('should handle empty user input gracefully', async () => { @@ -383,7 +385,9 @@ describe('ChatView', () => { await (view as any).handleUserInput('test'); expect(chatSpy).toHaveBeenCalled(); - expect(consoleSpy).toHaveBeenCalledWith('Error handling user input:', expect.any(Error)); + expect(consoleSpy).toHaveBeenCalledWith( + 'Ollama Plugin Error [ChatView.handleUserInput]: Network error' + ); }); describe('event handlers', () => { @@ -391,9 +395,10 @@ describe('ChatView', () => { view['sendButton'] = document.createElement('button'); view['inputEl'] = document.createElement('textarea'); (view['inputEl'] as HTMLTextAreaElement).value = 'test'; + (view as any).setupEventListeners(); const handleSpy = jest.spyOn(view as any, 'handleUserInput'); - const handler = view.getSendButtonClickHandler?.bind(view); + const handler = view.getSendButtonClickHandler(); if (!handler) throw new Error('Handler not available'); await handler(); @@ -405,11 +410,13 @@ describe('ChatView', () => { view['sendButton'] = document.createElement('button'); view['inputEl'] = document.createElement('textarea'); (view['inputEl'] as HTMLTextAreaElement).value = 'test'; + (view as any).setupEventListeners(); const handleSpy = jest.spyOn(view as any, 'handleUserInput'); const event = new KeyboardEvent('keydown', { key: 'Enter' }) as any; - - await (view as any).inputKeyDownHandler!(event); + const handler = view.getInputKeyDownHandler(); + if (!handler) throw new Error('Handler not available'); + await handler(event); expect(handleSpy).toHaveBeenCalledWith('test'); expect((view['inputEl'] as HTMLTextAreaElement).value).toBe(''); @@ -419,11 +426,13 @@ describe('ChatView', () => { view['sendButton'] = document.createElement('button'); view['inputEl'] = document.createElement('textarea'); (view['inputEl'] as HTMLTextAreaElement).value = 'test'; + (view as any).setupEventListeners(); const handleSpy = jest.spyOn(view as any, 'handleUserInput'); const event = new KeyboardEvent('keydown', { key: 'Enter', shiftKey: true }) as any; - - await (view as any).inputKeyDownHandler!(event); + const handler = view.getInputKeyDownHandler(); + if (!handler) throw new Error('Handler not available'); + await handler(event); expect(handleSpy).not.toHaveBeenCalled(); }); @@ -432,11 +441,12 @@ describe('ChatView', () => { view['sendButton'] = document.createElement('button'); view['inputEl'] = document.createElement('textarea'); view['newChatButton'] = document.createElement('button'); + (view as any).setupEventListeners(); const clearSpy = jest.spyOn(view as any, 'clearConversation'); - const handler = view.getNewChatButtonClickHandler?.bind(view); + const handler = view.getNewChatButtonClickHandler(); if (!handler) throw new Error('Handler not available'); - await handler(); + handler(); expect(clearSpy).toHaveBeenCalled(); }); @@ -467,9 +477,10 @@ describe('ChatView', () => { view['sendButton'] = document.createElement('button'); view['inputEl'] = document.createElement('textarea'); (view['inputEl'] as HTMLTextAreaElement).value = 'test'; + (view as any).setupEventListeners(); const handleSpy = jest.spyOn(view as any, 'handleUserInput'); - const handler = view.getSendButtonClickHandler?.bind(view); + const handler = view.getSendButtonClickHandler(); if (!handler) throw new Error('Handler not available'); await handler(); @@ -481,11 +492,13 @@ describe('ChatView', () => { view['sendButton'] = document.createElement('button'); view['inputEl'] = document.createElement('textarea'); (view['inputEl'] as HTMLTextAreaElement).value = 'test'; + (view as any).setupEventListeners(); const handleSpy = jest.spyOn(view as any, 'handleUserInput'); const event = new KeyboardEvent('keydown', { key: 'Enter' }) as any; - - await (view as any).inputKeyDownHandler!(event); + const handler = view.getInputKeyDownHandler(); + if (!handler) throw new Error('Handler not available'); + await handler(event); expect(handleSpy).toHaveBeenCalledWith('test'); expect((view['inputEl'] as HTMLTextAreaElement).value).toBe(''); @@ -495,11 +508,13 @@ describe('ChatView', () => { view['sendButton'] = document.createElement('button'); view['inputEl'] = document.createElement('textarea'); (view['inputEl'] as HTMLTextAreaElement).value = 'test'; + (view as any).setupEventListeners(); const handleSpy = jest.spyOn(view as any, 'handleUserInput'); const event = new KeyboardEvent('keydown', { key: 'Enter', shiftKey: true }) as any; - - await (view as any).inputKeyDownHandler!(event); + const handler = view.getInputKeyDownHandler(); + if (!handler) throw new Error('Handler not available'); + await handler(event); expect(handleSpy).not.toHaveBeenCalled(); }); @@ -508,10 +523,12 @@ describe('ChatView', () => { view['sendButton'] = document.createElement('button'); view['inputEl'] = document.createElement('textarea'); view['newChatButton'] = document.createElement('button'); + (view as any).setupEventListeners(); const clearSpy = jest.spyOn(view as any, 'clearConversation'); - - await (view as any).newChatButtonClickHandler!(); + const handler = view.getNewChatButtonClickHandler(); + if (!handler) throw new Error('Handler not available'); + handler(); expect(clearSpy).toHaveBeenCalled(); });