diff --git a/src/lib/webview/controller/startwork/startWorkWebviewController.test.ts b/src/lib/webview/controller/startwork/startWorkWebviewController.test.ts index 4a1546e3f..b70424e09 100644 --- a/src/lib/webview/controller/startwork/startWorkWebviewController.test.ts +++ b/src/lib/webview/controller/startwork/startWorkWebviewController.test.ts @@ -440,15 +440,7 @@ describe('StartWorkWebviewController', () => { await controller.onMessageReceived(externalImageAction); - // Note: The implementation has a bug - it should return after posting the empty response, - // but it continues and tries to fetch the external URL - expect(mockTransportFactory.get).toHaveBeenCalledWith('https://external.com/image.png', { - method: 'GET', - headers: { - Authorization: undefined, - }, - responseType: 'arraybuffer', - }); + expect(mockTransportFactory.get).not.toHaveBeenCalled(); expect(mockMessagePoster).toHaveBeenCalledWith({ type: 'getImageDone', imgData: '', diff --git a/src/lib/webview/controller/startwork/startWorkWebviewController.ts b/src/lib/webview/controller/startwork/startWorkWebviewController.ts index b8c0bb96c..473917cd0 100644 --- a/src/lib/webview/controller/startwork/startWorkWebviewController.ts +++ b/src/lib/webview/controller/startwork/startWorkWebviewController.ts @@ -192,6 +192,7 @@ export class StartWorkWebviewController implements WebviewController { }); }); + test('should skip external images and not fetch', async () => { + const mockGet = jest.fn().mockResolvedValue({ data: Buffer.from('image-data') }); + mockJiraClient.transportFactory.mockReturnValue({ get: mockGet }); + + const msg = { + action: 'getImage', + url: 'https://external.com/image.png', + nonce: 'nonce-123', + }; + + const postMessageSpy = jest.spyOn(jiraIssueWebview as any, 'postMessage'); + + await jiraIssueWebview['onMessageReceived'](msg); + + expect(mockGet).not.toHaveBeenCalled(); + expect(postMessageSpy).toHaveBeenCalledWith({ + type: 'getImageDone', + imgData: '', + nonce: 'nonce-123', + }); + }); + test('should handle refreshIssue action', async () => { const msg = { action: 'refreshIssue' }; diff --git a/src/webviews/jiraIssueWebview.ts b/src/webviews/jiraIssueWebview.ts index f3d925894..26303b319 100644 --- a/src/webviews/jiraIssueWebview.ts +++ b/src/webviews/jiraIssueWebview.ts @@ -1882,6 +1882,7 @@ export class JiraIssueWebview imgData: '', nonce: msg.nonce, }); + break; } const url = href.toString();