diff --git a/packages/renderer/src/lib/feedback/SendFeedback.svelte b/packages/renderer/src/lib/feedback/SendFeedback.svelte index 90a714568dc..2fd462512e4 100644 --- a/packages/renderer/src/lib/feedback/SendFeedback.svelte +++ b/packages/renderer/src/lib/feedback/SendFeedback.svelte @@ -56,7 +56,11 @@ function handleUpdate(e: boolean): void { {#if displayModal}
+<<<<<<< HEAD => hideModal()}> +======= + => hideModal()} ignoreFocusOut={true}> +>>>>>>> 077405428 (chore: prevent feedback form from closing when clicking on a non-submission link (#16769))

Share your feedback

=> hideModal()} /> diff --git a/packages/renderer/src/lib/feedback/feedbackForms/DirectFeedback.spec.ts b/packages/renderer/src/lib/feedback/feedbackForms/DirectFeedback.spec.ts index 48e1422460d..ca0d0134f3a 100644 --- a/packages/renderer/src/lib/feedback/feedbackForms/DirectFeedback.spec.ts +++ b/packages/renderer/src/lib/feedback/feedbackForms/DirectFeedback.spec.ts @@ -158,7 +158,8 @@ test('Expect message for happy-smiley to use like', async () => { }); test('Expect GitHub dialog visible when very-happy-smiley selected', async () => { - render(DirectFeedback, { category: 'developers', contentChange: vi.fn(), onCloseForm: vi.fn() }); + const onCloseFormMock = vi.fn(); + render(DirectFeedback, { category: 'developers', contentChange: vi.fn(), onCloseForm: onCloseFormMock }); // click on a smiley const smiley = await screen.findByRole('button', { name: 'very-happy-smiley' }); @@ -174,6 +175,8 @@ test('Expect GitHub dialog visible when very-happy-smiley selected', async () => expect(window.telemetryTrack).toHaveBeenCalledWith('feedback.openGitHub'); expect(window.openExternal).toHaveBeenCalledWith('https://github.com/containers/podman-desktop'); }); + + expect(onCloseFormMock).not.toHaveBeenCalled(); }); test('Expect category to be sent', async () => { diff --git a/packages/renderer/src/lib/feedback/feedbackForms/DirectFeedback.svelte b/packages/renderer/src/lib/feedback/feedbackForms/DirectFeedback.svelte index cc629a80991..f8b4dd1c31a 100644 --- a/packages/renderer/src/lib/feedback/feedbackForms/DirectFeedback.svelte +++ b/packages/renderer/src/lib/feedback/feedbackForms/DirectFeedback.svelte @@ -70,7 +70,6 @@ async function sendFeedback(): Promise { } async function openGitHub(): Promise { - onCloseForm(false); await window.telemetryTrack('feedback.openGitHub'); await window.openExternal('https://github.com/containers/podman-desktop'); } diff --git a/packages/renderer/src/lib/feedback/feedbackForms/GitHubIssueFeedback.spec.ts b/packages/renderer/src/lib/feedback/feedbackForms/GitHubIssueFeedback.spec.ts index ea3d5c2d08f..d3fc4e0898d 100644 --- a/packages/renderer/src/lib/feedback/feedbackForms/GitHubIssueFeedback.spec.ts +++ b/packages/renderer/src/lib/feedback/feedbackForms/GitHubIssueFeedback.spec.ts @@ -182,9 +182,10 @@ test.each([ 'bug', 'feature', ])('Expect %s to be included in previewOnGitHub call', async category => { + const onCloseFormMock = vi.fn(); const { preview, title, description } = renderGitHubIssueFeedback({ category: category, - onCloseForm: vi.fn(), + onCloseForm: onCloseFormMock, contentChange: vi.fn(), }); @@ -205,6 +206,8 @@ test.each([ category: category, }), ); + + expect(onCloseFormMock).toHaveBeenCalled(); }); describe('includeSystemInfo', () => { @@ -366,3 +369,20 @@ test('Expect close confirmation to be true if cancel clicked', async () => { expect(closeMock).toHaveBeenCalledOnce(); expect(closeMock).toHaveBeenCalledWith(true); }); + +test('Expect opening existing GitHub issues to not close the feedback window', async () => { + const onCloseFormMock = vi.fn(); + const { getByLabelText } = renderGitHubIssueFeedback({ + category: 'bug', + onCloseForm: onCloseFormMock, + contentChange: vi.fn(), + }); + + const gitHubLink = getByLabelText('GitHub issues'); + expect(gitHubLink).toBeInTheDocument(); + + await userEvent.click(gitHubLink); + + expect(window.openExternal).toHaveBeenCalled(); + expect(onCloseFormMock).not.toHaveBeenCalled(); +}); diff --git a/packages/renderer/src/lib/feedback/feedbackForms/GitHubIssueFeedback.svelte b/packages/renderer/src/lib/feedback/feedbackForms/GitHubIssueFeedback.svelte index 29244cd4631..58b43255aff 100644 --- a/packages/renderer/src/lib/feedback/feedbackForms/GitHubIssueFeedback.svelte +++ b/packages/renderer/src/lib/feedback/feedbackForms/GitHubIssueFeedback.svelte @@ -48,7 +48,6 @@ onMount(async () => { }); async function openGitHubIssues(): Promise { - onCloseForm(false); await window.openExternal(existingIssuesLink); }