diff --git a/app/javascript/dashboard/components-next/captain/pageComponents/response/FaqSuggestionReviewDialog.spec.js b/app/javascript/dashboard/components-next/captain/pageComponents/response/FaqSuggestionReviewDialog.spec.js
index 6a0f59ac6..4ca3183bc 100644
--- a/app/javascript/dashboard/components-next/captain/pageComponents/response/FaqSuggestionReviewDialog.spec.js
+++ b/app/javascript/dashboard/components-next/captain/pageComponents/response/FaqSuggestionReviewDialog.spec.js
@@ -1,8 +1,9 @@
import { flushPromises, shallowMount } from '@vue/test-utils';
import FaqSuggestionReviewDialog from './FaqSuggestionReviewDialog.vue';
-const { dispatch, uiFlags } = vi.hoisted(() => ({
+const { dispatch, push, uiFlags } = vi.hoisted(() => ({
dispatch: vi.fn(),
+ push: vi.fn(),
uiFlags: {
value: {
fetchingItem: false,
@@ -24,10 +25,11 @@ vi.mock('vue-i18n', () => ({
}));
vi.mock('vue-router', () => ({
- useRouter: () => ({ push: vi.fn() }),
+ useRouter: () => ({ push }),
}));
const DialogStub = {
+ methods: { close: vi.fn() },
template: `
@@ -71,4 +73,42 @@ describe('FaqSuggestionReviewDialog', () => {
'CAPTAIN.FAQ_SUGGESTIONS.DETAILS.NO_SOURCES'
);
});
+
+ it('opens source conversations using their display ID', async () => {
+ dispatch.mockResolvedValueOnce({
+ observations: [
+ {
+ id: 1,
+ generated_question: 'How do I enable the feature?',
+ created_at: 1,
+ conversation: { id: 99, display_id: 42 },
+ },
+ ],
+ });
+
+ const wrapper = shallowMount(FaqSuggestionReviewDialog, {
+ props: {
+ suggestion: {
+ id: 1,
+ question: 'How do I enable the feature?',
+ answer: 'Turn it on in settings.',
+ source_count: 1,
+ assistant: { name: 'Support assistant' },
+ language: 'en',
+ },
+ },
+ global: {
+ mocks: { $t: key => key },
+ stubs: { Dialog: DialogStub },
+ },
+ });
+
+ await flushPromises();
+ await wrapper.get('section button').trigger('click');
+
+ expect(push).toHaveBeenCalledWith({
+ name: 'inbox_conversation',
+ params: { conversation_id: 42 },
+ });
+ });
});
diff --git a/app/javascript/dashboard/components-next/captain/pageComponents/response/FaqSuggestionReviewDialog.vue b/app/javascript/dashboard/components-next/captain/pageComponents/response/FaqSuggestionReviewDialog.vue
index 256448240..c458f59b0 100644
--- a/app/javascript/dashboard/components-next/captain/pageComponents/response/FaqSuggestionReviewDialog.vue
+++ b/app/javascript/dashboard/components-next/captain/pageComponents/response/FaqSuggestionReviewDialog.vue
@@ -220,7 +220,7 @@ defineExpose({ dialogRef });
:key="observation.id"
type="button"
class="flex w-full flex-col gap-1.5 rounded-lg border border-n-weak bg-n-solid-2 p-3 text-start transition-colors hover:border-n-brand"
- @click="openConversation(observation.conversation.id)"
+ @click="openConversation(observation.conversation.display_id)"
>
diff --git a/enterprise/app/views/api/v1/models/captain/_faq_observation.json.jbuilder b/enterprise/app/views/api/v1/models/captain/_faq_observation.json.jbuilder
index cdcd63a70..50dc36d7f 100644
--- a/enterprise/app/views/api/v1/models/captain/_faq_observation.json.jbuilder
+++ b/enterprise/app/views/api/v1/models/captain/_faq_observation.json.jbuilder
@@ -5,6 +5,6 @@ json.language resource.language
json.status resource.status
json.created_at resource.created_at.to_i
json.conversation do
- json.id resource.conversation.display_id
+ json.id resource.conversation.id
json.display_id resource.conversation.display_id
end