@servicetitan/titan-chatbot-api 7.1.2 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/api-client/__mocks__/chatbot-api-client.mock.js +21 -47
  3. package/dist/api-client/__mocks__/chatbot-api-client.mock.js.map +1 -1
  4. package/dist/api-client/base/chatbot-api-client.js +3 -4
  5. package/dist/api-client/base/chatbot-api-client.js.map +1 -1
  6. package/dist/api-client/help-center/__tests__/converter-from-models.test.js +48 -15
  7. package/dist/api-client/help-center/__tests__/converter-from-models.test.js.map +1 -1
  8. package/dist/api-client/help-center/__tests__/converter-to-models.test.js +23 -22
  9. package/dist/api-client/help-center/__tests__/converter-to-models.test.js.map +1 -1
  10. package/dist/api-client/help-center/chatbot-api-client.js +51 -52
  11. package/dist/api-client/help-center/chatbot-api-client.js.map +1 -1
  12. package/dist/api-client/help-center/converter-from-models.js +15 -12
  13. package/dist/api-client/help-center/converter-from-models.js.map +1 -1
  14. package/dist/api-client/help-center/converter-to-models.js +29 -26
  15. package/dist/api-client/help-center/converter-to-models.js.map +1 -1
  16. package/dist/api-client/help-center/index.d.ts +2 -1
  17. package/dist/api-client/help-center/index.d.ts.map +1 -1
  18. package/dist/api-client/help-center/index.js +1 -0
  19. package/dist/api-client/help-center/index.js.map +1 -1
  20. package/dist/api-client/help-center/native-client.js +1192 -2884
  21. package/dist/api-client/help-center/native-client.js.map +1 -1
  22. package/dist/api-client/index.d.ts +2 -1
  23. package/dist/api-client/index.d.ts.map +1 -1
  24. package/dist/api-client/index.js +14 -7
  25. package/dist/api-client/index.js.map +1 -1
  26. package/dist/api-client/models/__mocks__/models.mock.js +154 -124
  27. package/dist/api-client/models/__mocks__/models.mock.js.map +1 -1
  28. package/dist/api-client/models/index.d.ts +2 -1
  29. package/dist/api-client/models/index.d.ts.map +1 -1
  30. package/dist/api-client/models/index.js +8 -7
  31. package/dist/api-client/models/index.js.map +1 -1
  32. package/dist/api-client/titan-chat/__tests__/native-client.test.js +6 -6
  33. package/dist/api-client/titan-chat/__tests__/native-client.test.js.map +1 -1
  34. package/dist/api-client/titan-chat/chatbot-api-client.js +40 -35
  35. package/dist/api-client/titan-chat/chatbot-api-client.js.map +1 -1
  36. package/dist/api-client/titan-chat/index.d.ts +2 -1
  37. package/dist/api-client/titan-chat/index.d.ts.map +1 -1
  38. package/dist/api-client/titan-chat/index.js +1 -0
  39. package/dist/api-client/titan-chat/index.js.map +1 -1
  40. package/dist/api-client/titan-chat/native-client.js +359 -812
  41. package/dist/api-client/titan-chat/native-client.js.map +1 -1
  42. package/dist/api-client/utils/__tests__/model-utils.test.js +454 -191
  43. package/dist/api-client/utils/__tests__/model-utils.test.js.map +1 -1
  44. package/dist/api-client/utils/model-utils.d.ts.map +1 -1
  45. package/dist/api-client/utils/model-utils.js +28 -25
  46. package/dist/api-client/utils/model-utils.js.map +1 -1
  47. package/dist/hooks/use-customization-chatbot.js +2 -1
  48. package/dist/hooks/use-customization-chatbot.js.map +1 -1
  49. package/dist/index.d.ts +1 -1
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +6 -5
  52. package/dist/index.js.map +1 -1
  53. package/dist/models/chatbot-customizations.js +2 -1
  54. package/dist/models/chatbot-customizations.js.map +1 -1
  55. package/dist/models/index.d.ts +1 -1
  56. package/dist/models/index.d.ts.map +1 -1
  57. package/dist/models/index.js +2 -1
  58. package/dist/models/index.js.map +1 -1
  59. package/dist/stores/__tests__/chatbot-ui-backend.store.test.js +267 -172
  60. package/dist/stores/__tests__/chatbot-ui-backend.store.test.js.map +1 -1
  61. package/dist/stores/__tests__/chatbot-ui.store.test.js +61 -64
  62. package/dist/stores/__tests__/chatbot-ui.store.test.js.map +1 -1
  63. package/dist/stores/__tests__/filter.store.test.js +243 -116
  64. package/dist/stores/__tests__/filter.store.test.js.map +1 -1
  65. package/dist/stores/__tests__/initialize.store.test.js +9 -8
  66. package/dist/stores/__tests__/initialize.store.test.js.map +1 -1
  67. package/dist/stores/__tests__/message-feedback-guardrail.store.test.js +8 -7
  68. package/dist/stores/__tests__/message-feedback-guardrail.store.test.js.map +1 -1
  69. package/dist/stores/__tests__/message-feedback.store.test.js +34 -27
  70. package/dist/stores/__tests__/message-feedback.store.test.js.map +1 -1
  71. package/dist/stores/__tests__/session-feedback.store.test.js +9 -8
  72. package/dist/stores/__tests__/session-feedback.store.test.js.map +1 -1
  73. package/dist/stores/chatbot-ui-backend.store.js +171 -240
  74. package/dist/stores/chatbot-ui-backend.store.js.map +1 -1
  75. package/dist/stores/chatbot-ui.store.js +73 -46
  76. package/dist/stores/chatbot-ui.store.js.map +1 -1
  77. package/dist/stores/filter.store.js +298 -378
  78. package/dist/stores/filter.store.js.map +1 -1
  79. package/dist/stores/index.d.ts +5 -3
  80. package/dist/stores/index.d.ts.map +1 -1
  81. package/dist/stores/index.js +3 -2
  82. package/dist/stores/index.js.map +1 -1
  83. package/dist/stores/initialize.store.js +55 -51
  84. package/dist/stores/initialize.store.js.map +1 -1
  85. package/dist/stores/message-feedback-base.store.js +2 -1
  86. package/dist/stores/message-feedback-base.store.js.map +1 -1
  87. package/dist/stores/message-feedback-guardrail.store.js +50 -47
  88. package/dist/stores/message-feedback-guardrail.store.js.map +1 -1
  89. package/dist/stores/message-feedback.store.js +84 -89
  90. package/dist/stores/message-feedback.store.js.map +1 -1
  91. package/dist/stores/session-feedback.store.js +46 -39
  92. package/dist/stores/session-feedback.store.js.map +1 -1
  93. package/dist/utils/__tests__/axios-utils.test.js +8 -7
  94. package/dist/utils/__tests__/axios-utils.test.js.map +1 -1
  95. package/dist/utils/axios-utils.js +9 -7
  96. package/dist/utils/axios-utils.js.map +1 -1
  97. package/dist/utils/test-utils.js +5 -5
  98. package/dist/utils/test-utils.js.map +1 -1
  99. package/package.json +3 -3
  100. package/src/api-client/help-center/index.ts +2 -1
  101. package/src/api-client/help-center/native-client.ts +4 -4
  102. package/src/api-client/index.ts +2 -6
  103. package/src/api-client/models/index.ts +15 -13
  104. package/src/api-client/titan-chat/index.ts +2 -1
  105. package/src/api-client/utils/model-utils.ts +4 -8
  106. package/src/index.ts +1 -1
  107. package/src/models/index.ts +1 -1
  108. package/src/stores/index.ts +5 -12
  109. package/tsconfig.tsbuildinfo +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"chatbot-ui-backend.store.test.js","sourceRoot":"","sources":["../../../src/stores/__tests__/chatbot-ui-backend.store.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/stores/__tests__/chatbot-ui-backend.store.test.ts"],"sourcesContent":["import { expect } from '@jest/globals';\nimport { ILog, Log, LogError, LogInfo, LogWarning } from '@servicetitan/log-service';\nimport { Container } from '@servicetitan/react-ioc';\nimport {\n ChatError,\n ChatMessageModelText,\n ChatMessageModelWelcome,\n ChatRunState,\n ChatUiEventListener,\n} from '@servicetitan/titan-chat-ui-common';\nimport { CHATBOT_API_CLIENT, IChatbotApiClient, Models, ModelsMocks } from '../../api-client';\nimport { ChatbotApiClientMock } from '../../api-client/__mocks__/chatbot-api-client.mock';\nimport { initTestContainer } from '../../utils/test-utils';\nimport { ChatbotUiBackendStore } from '../chatbot-ui-backend.store';\nimport { CHATBOT_UI_STORE_TOKEN, ChatbotUiStore } from '../chatbot-ui.store';\n\nconst WELCOME_MESSAGE =\n 'Hi there! I’m Agent, an AI chatbot powered by Titan Intelligence. I’m here to answer your questions about using ServiceTitan. You can ask me things like \"How to merge duplicate customers?\". Do you have a question for me?';\n\nconst initContainer = initTestContainer(ChatbotUiBackendStore, container => {\n container\n .bind<ILog>(Log)\n .to(\n class implements ILog {\n error: (entry: LogError) => void = jest.fn();\n info: (entry: LogInfo) => void = jest.fn();\n warning: (entry: LogWarning) => void = jest.fn();\n }\n )\n .inSingletonScope();\n container\n .bind<IChatbotApiClient>(CHATBOT_API_CLIENT)\n .toConstantValue(new ChatbotApiClientMock());\n container.bind(CHATBOT_UI_STORE_TOKEN).to(ChatbotUiStore).inSingletonScope();\n});\n\ndescribe('[ChatbotUiBackendStore]', () => {\n let container: Container;\n let store: ChatbotUiBackendStore;\n let chatbotApi: ChatbotApiClientMock;\n let chatUiStore: ChatbotUiStore;\n let log: ILog;\n\n beforeEach(() => {\n container = initContainer();\n store = container.get(ChatbotUiBackendStore);\n chatbotApi = container.get<IChatbotApiClient>(CHATBOT_API_CLIENT) as ChatbotApiClientMock;\n chatUiStore = container.get<ChatbotUiStore>(CHATBOT_UI_STORE_TOKEN);\n log = container.get<ILog>(Log);\n jest.useFakeTimers();\n jest.setSystemTime(new Date('2000-01-01T00:00:00.000Z'));\n });\n\n afterEach(() => {\n jest.useRealTimers();\n jest.clearAllMocks();\n });\n\n describe('with subscription', () => {\n let spyOn: jest.SpyInstance;\n let spyOff: jest.SpyInstance;\n\n beforeEach(() => {\n spyOn = jest.spyOn(chatUiStore, 'on');\n spyOff = jest.spyOn(chatUiStore, 'off');\n });\n\n test('should subscribe on external events', () => {\n store.subscribe();\n expect(spyOn).toHaveBeenCalledTimes(8);\n expect(spyOff).toHaveBeenCalledTimes(8);\n });\n\n test('should unsubscribe from external events', () => {\n store.unsubscribe();\n expect(chatUiStore.on).toHaveBeenCalledTimes(0);\n expect(chatUiStore.off).toHaveBeenCalledTimes(8);\n });\n });\n\n describe('with run', () => {\n const runChatUiEventListener = async <T = void>(\n listener: ChatUiEventListener<T>,\n args: unknown[]\n ) => {\n return new Promise<T>((resolve, reject) => {\n listener.apply(store, [resolve, reject, ...args]);\n });\n };\n\n const runStore = async () => {\n await runChatUiEventListener(store.handleRun, []);\n await jest.advanceTimersToNextTimerAsync(); // Wait for the timer to be set\n };\n\n const mockChatbotSession = () => {\n chatbotApi.getOptions.mockResolvedValue(ModelsMocks.mockFrontendModel());\n chatbotApi.postSession.mockResolvedValue(ModelsMocks.mockSession());\n chatbotApi.deleteSession.mockResolvedValue(ModelsMocks.mockSession());\n };\n\n const mockChatbotAnswer = (answer: string) => {\n const answerMock = ModelsMocks.mockBotMessage({\n id: 123,\n answer,\n });\n chatbotApi.postMessage.mockResolvedValue(answerMock);\n return answerMock;\n };\n\n const mockChatbotAnswers = (answers: { answer: string; answerId?: number }[]) => {\n const answerMocks = answers.map(({ answer, answerId }, index) =>\n ModelsMocks.mockBotMessage({\n id: answerId ?? 123 + index,\n answer,\n })\n );\n\n // Mock in reverse order to simulate responses coming back in different order\n [...answerMocks].reverse().forEach(mock => {\n chatbotApi.postMessage.mockResolvedValueOnce(mock);\n });\n\n return answerMocks;\n };\n\n const ensureChatStarted = () => {\n expect(chatUiStore.isAgentTyping).toBe(false);\n expect(chatUiStore.isFilePickerEnabled).toBe(false);\n expect(chatUiStore.file).toBe(undefined);\n expect(chatUiStore.currentFileMessage).toBe(undefined);\n expect(chatUiStore.error).toBe(undefined);\n expect(chatUiStore.endReason).toBe(undefined);\n expect(chatUiStore.timer).toBe(undefined);\n expect(chatUiStore.scrollCounter > 1).toBe(true);\n expect(chatUiStore.status).toBe(ChatRunState.Started);\n };\n\n test('should run chatbot without stored session', async () => {\n store.subscribe();\n mockChatbotSession();\n\n await runStore();\n\n ensureChatStarted();\n expect(chatUiStore.messages.length).toBe(1);\n expect(chatUiStore.messages[0].type).toBe('welcome');\n expect((chatUiStore.messages[0] as ChatMessageModelText).message).toBe(WELCOME_MESSAGE);\n\n /*\n * We don't have session yet because we've just initialized the chat with welcome message\n * and we don't do any chatbotApi.postSession call\n */\n expect(store.session).toBeUndefined();\n expect(chatbotApi.postSession).toHaveBeenCalledTimes(0);\n\n const botAnswer = mockChatbotAnswer('bot answer');\n await chatUiStore.sendMessageText('user question');\n expect(chatUiStore.messages.length).toBe(3);\n const welcome = chatUiStore.messages[0];\n const question = chatUiStore.messages[1] as ChatMessageModelText;\n const answer = chatUiStore.messages[2] as ChatMessageModelText;\n\n expect(welcome.type).toBe('welcome');\n\n expect(question.type).toBe('message');\n expect(question.participant.isAgent).toBe(false);\n expect(question.message).toBe('user question');\n // Ensure that question data contains answerId from bot answer\n expect(question.data).toEqual({\n answerId: botAnswer.id,\n selections: undefined,\n });\n\n expect(answer.type).toBe('message');\n expect(answer.participant.isAgent).toBe(true);\n expect(answer.message).toBe('bot answer');\n expect(answer.data).toEqual(botAnswer);\n\n expect(log.error).toHaveBeenCalledTimes(0);\n });\n\n test('should have correct answer ids in user messages for simultaneous messages', async () => {\n store.subscribe();\n mockChatbotSession();\n\n await runStore();\n\n ensureChatStarted();\n expect(chatUiStore.messages.length).toBe(1);\n\n const [botAnswer1, botAnswer2] = mockChatbotAnswers([\n { answer: 'bot answer 1', answerId: 111 },\n { answer: 'bot answer 2', answerId: 222 },\n ]);\n\n await Promise.all([\n chatUiStore.sendMessageText('user question 1'),\n chatUiStore.sendMessageText('user question 2'),\n ]);\n\n expect(chatUiStore.messages.length).toBe(5);\n\n const textMessages = chatUiStore.messages as ChatMessageModelText[];\n const question1 = textMessages.find(x => x.message === 'user question 1')!;\n const answer1 = textMessages.find(x => x.message === 'bot answer 1')!;\n const question2 = textMessages.find(x => x.message === 'user question 2')!;\n const answer2 = textMessages.find(x => x.message === 'bot answer 2')!;\n\n expect(question1.type).toBe('message');\n expect(question1.participant.isAgent).toBe(false);\n expect(question1.message).toBe('user question 1');\n expect(question1.data).toEqual({\n answerId: botAnswer1.id,\n selections: undefined,\n });\n\n expect(answer1.type).toBe('message');\n expect(answer1.participant.isAgent).toBe(true);\n expect(answer1.message).toBe('bot answer 1');\n expect(answer1.data).toEqual(botAnswer1);\n\n expect(question2.type).toBe('message');\n expect(question2.participant.isAgent).toBe(false);\n expect(question2.message).toBe('user question 2');\n expect(question2.data).toEqual({\n answerId: botAnswer2.id,\n selections: undefined,\n });\n\n expect(answer2.type).toBe('message');\n expect(answer2.participant.isAgent).toBe(true);\n expect(answer2.message).toBe('bot answer 2');\n expect(answer2.data).toEqual(botAnswer2);\n\n expect(log.error).toHaveBeenCalledTimes(0);\n });\n\n test('should run chatbot with stored session with expiration', async () => {\n mockChatbotSession();\n\n await jest.advanceTimersByTimeAsync(1000 * 60 * 60 * 16);\n await runStore();\n ensureChatStarted();\n expect(store.session).not.toBeDefined();\n expect(chatUiStore.messages.length).toBe(1);\n expect(chatbotApi.postSession).toHaveBeenCalledTimes(0);\n expect(log.error).toHaveBeenCalledTimes(0);\n });\n\n test('should destroy', async () => {\n mockChatbotSession();\n\n await runStore();\n store.session = ModelsMocks.mockSession();\n await runChatUiEventListener(store.handleDestroy, []);\n\n expect(chatbotApi.postSession).toHaveBeenCalledTimes(0);\n expect(chatbotApi.deleteSession).toHaveBeenCalledTimes(1);\n expect(chatUiStore.status).toBe(ChatRunState.Offline);\n expect(store.session).toBeUndefined();\n expect(log.error).toHaveBeenCalledTimes(0);\n });\n\n test('should restart', async () => {\n mockChatbotSession();\n\n await runStore();\n store.session = ModelsMocks.mockSession();\n await runChatUiEventListener(store.handleRestart, []);\n\n expect(chatbotApi.postSession).toHaveBeenCalledTimes(0);\n expect(chatbotApi.deleteSession).toHaveBeenCalledTimes(1);\n expect(chatUiStore.status).toBe(ChatRunState.Started);\n expect(log.error).toHaveBeenCalledTimes(0);\n });\n\n describe('with messages', () => {\n test('should send message', async () => {\n mockChatbotSession();\n mockChatbotAnswer('bot answer');\n\n await runStore();\n\n await chatUiStore.sendMessageText('user question');\n const message = chatUiStore.messages.at(-1)! as ChatMessageModelText;\n await runChatUiEventListener(store.handleMessageSend, [message]);\n\n expect(chatUiStore.messages.length).toBe(3);\n expect((chatUiStore.messages[0] as ChatMessageModelText).message).toBe(\n WELCOME_MESSAGE\n );\n expect((chatUiStore.messages[1] as ChatMessageModelText).message).toBe(\n 'user question'\n );\n expect((chatUiStore.messages[2] as ChatMessageModelText).message).toBe(\n 'bot answer'\n );\n expect(log.error).toHaveBeenCalledTimes(0);\n });\n\n test('should send message with error', async () => {\n mockChatbotSession();\n chatbotApi.postMessage.mockRejectedValue(new Error('error'));\n\n await chatUiStore.sendMessageText('user question');\n const message = chatUiStore.messages.at(-1)! as ChatMessageModelText;\n await runChatUiEventListener(store.handleMessageSend, [message]);\n\n expect(chatbotApi.postSession).toHaveBeenCalled();\n expect(chatbotApi.postMessage).toHaveBeenCalled();\n expect(chatUiStore.isError).toBe(true);\n expect(log.error).toHaveBeenCalledWith({\n category: 'TitanChatbot',\n code: 'TitanChatbot_FailedToSendMessage',\n error: new Error('error'),\n message: 'Failed to send message',\n });\n });\n\n test('should use per-request timeoutMs when provided', async () => {\n mockChatbotSession();\n chatbotApi.postMessage.mockImplementation(\n () =>\n new Promise(resolve =>\n setTimeout(\n () =>\n resolve(ModelsMocks.mockBotMessage({ answer: 'late answer' })),\n 200\n )\n )\n );\n\n await runStore();\n await chatUiStore.sendMessageText('user question');\n const message = chatUiStore.messages.at(-1)! as ChatMessageModelText;\n\n const p = runChatUiEventListener(store.handleMessageSend, [message, undefined, 50]);\n await jest.advanceTimersByTimeAsync(50);\n await p;\n\n expect(chatUiStore.isError).toBe(true);\n expect(log.error).toHaveBeenCalledWith(\n expect.objectContaining({\n code: 'TitanChatbot_FailedToSendMessage',\n message: 'Failed to send message',\n })\n );\n });\n\n test('should fall back to global timeout when no per-request timeoutMs', async () => {\n mockChatbotSession();\n chatbotApi.postMessage.mockImplementation(\n () =>\n new Promise(resolve =>\n setTimeout(\n () =>\n resolve(ModelsMocks.mockBotMessage({ answer: 'late answer' })),\n 200\n )\n )\n );\n chatUiStore.setCustomizationContext({ timeouts: { chatbotRequestTimeoutMs: 100 } });\n\n await runStore();\n await chatUiStore.sendMessageText('user question');\n const message = chatUiStore.messages.at(-1)! as ChatMessageModelText;\n\n // No per-request timeoutMs — should use global (100ms)\n const p = runChatUiEventListener(store.handleMessageSend, [message, undefined]);\n await jest.advanceTimersByTimeAsync(100);\n await p;\n\n expect(chatUiStore.isError).toBe(true);\n expect(log.error).toHaveBeenCalledWith(\n expect.objectContaining({ code: 'TitanChatbot_FailedToSendMessage' })\n );\n });\n\n test('should fall back to DEFAULT timeout when neither per-request nor global timeout is set', async () => {\n mockChatbotSession();\n chatbotApi.postMessage.mockImplementation(\n () =>\n new Promise(resolve =>\n setTimeout(\n () =>\n resolve(ModelsMocks.mockBotMessage({ answer: 'late answer' })),\n 40000\n )\n )\n );\n\n await runStore();\n await chatUiStore.sendMessageText('user question');\n const message = chatUiStore.messages.at(-1)! as ChatMessageModelText;\n\n // No per-request timeoutMs, no global timeout — should use DEFAULT (31000ms)\n const p = runChatUiEventListener(store.handleMessageSend, [message, undefined]);\n await jest.runOnlyPendingTimersAsync();\n await p;\n\n expect(chatUiStore.isError).toBe(true);\n expect(log.error).toHaveBeenCalledWith(\n expect.objectContaining({ code: 'TitanChatbot_FailedToSendMessage' })\n );\n });\n\n test('should not abort store-level controller when per-request timeout fires', async () => {\n mockChatbotSession();\n\n /*\n * First message: slow — will time out at 50ms\n * Second message: fast — should succeed despite the first timing out\n */\n const fastAnswer = ModelsMocks.mockBotMessage({ answer: 'fast answer' });\n\n chatbotApi.postMessage\n .mockImplementationOnce(() => new Promise(() => {})) // never resolves — times out\n .mockResolvedValueOnce(fastAnswer);\n\n await runStore();\n\n await chatUiStore.sendMessageText('slow question');\n const slowMessage = chatUiStore.messages.at(-1)! as ChatMessageModelText;\n\n // Start slow message with a short per-request timeout\n const p1 = runChatUiEventListener(store.handleMessageSend, [\n slowMessage,\n undefined,\n 50,\n ]);\n await jest.advanceTimersByTimeAsync(50);\n await p1;\n\n expect(chatUiStore.isError).toBe(true);\n expect(store.abortController.signal.aborted).toBe(false); // store-level signal must remain intact\n\n // A subsequent message should still succeed because the store controller was not aborted\n chatUiStore.resetError(ChatRunState.Started);\n await chatUiStore.sendMessageText('fast question');\n const fastMessage = chatUiStore.messages.at(-1)! as ChatMessageModelText;\n await runChatUiEventListener(store.handleMessageSend, [fastMessage]);\n\n expect(chatUiStore.isError).toBe(false);\n expect(chatUiStore.messages.at(-1)! as ChatMessageModelText).toMatchObject({\n message: 'fast answer',\n });\n });\n\n test('should preserve per-request timeoutMs on retry', async () => {\n mockChatbotSession();\n chatbotApi.postMessage.mockImplementation(\n () =>\n new Promise(resolve =>\n setTimeout(\n () =>\n resolve(ModelsMocks.mockBotMessage({ answer: 'late answer' })),\n 200\n )\n )\n );\n\n await runStore();\n await chatUiStore.sendMessageText('user question');\n const message = chatUiStore.messages.at(-1)! as ChatMessageModelText;\n\n // Initial send fails due to per-request timeout; timeoutMs is persisted on the message\n const p1 = runChatUiEventListener(store.handleMessageSend, [\n message,\n undefined,\n 50,\n ]);\n await jest.advanceTimersByTimeAsync(50);\n await p1;\n expect(chatUiStore.isError).toBe(true);\n\n // Retry should reuse the persisted timeoutMs (50ms), not fall back to default (31000ms)\n chatbotApi.postMessage.mockImplementation(\n () =>\n new Promise(resolve =>\n setTimeout(\n () =>\n resolve(ModelsMocks.mockBotMessage({ answer: 'late answer' })),\n 200\n )\n )\n );\n const p2 = runChatUiEventListener(store.handleMessageSendRetry, [message]);\n await jest.advanceTimersByTimeAsync(50);\n await p2;\n\n // If retry had fallen back to default 31000ms, it would not have timed out in 50ms\n expect(log.error).toHaveBeenCalledWith(\n expect.objectContaining({ code: 'TitanChatbot_FailedToSendMessage' })\n );\n });\n\n test('should send message retry', async () => {\n mockChatbotSession();\n const spyMessage = jest.spyOn(chatbotApi, 'postMessage');\n\n // Retry with non-text message should not call \"message\"\n const messageNonText = ModelsMocks.mockChatMessageModel<ChatMessageModelWelcome>({\n type: 'welcome',\n });\n await runChatUiEventListener(store.handleMessageSendRetry, [messageNonText]);\n expect(spyMessage).not.toHaveBeenCalled();\n\n // Retry with text message should call \"message\"\n const message = ModelsMocks.mockChatMessageModel<ChatMessageModelText>({\n message: 'message',\n });\n await runChatUiEventListener(store.handleMessageSendRetry, [message]);\n expect(spyMessage).toHaveBeenCalledWith(\n ModelsMocks.mockUserMessage({\n context: undefined,\n selections: undefined,\n question: 'message',\n }),\n expect.any(AbortSignal)\n );\n });\n });\n\n describe('with session start', () => {\n const createSession = (id: number) =>\n ModelsMocks.mockSession({\n id,\n data: { custom: 'data' },\n });\n\n test('should start session', async () => {\n const spyGetData = jest.spyOn(store, 'getSessionData').mockResolvedValue({\n defaultData: 'defaultData',\n });\n chatbotApi.postSession.mockResolvedValue(createSession(1));\n const { session } = await runChatUiEventListener(store.handleSessionStart, [\n { custom: 'data' },\n ]);\n\n expect(spyGetData).toHaveBeenCalled();\n expect(session).toEqual(createSession(1));\n expect(chatbotApi.postSession).toHaveBeenCalledWith(\n {\n data: { custom: 'data', defaultData: 'defaultData' },\n },\n expect.any(AbortSignal)\n );\n });\n\n test('should handle multiple calls', async () => {\n chatbotApi.postSession.mockResolvedValue(createSession(1));\n const p1 = runChatUiEventListener(store.handleSessionStart, [{ custom: 'data' }]);\n const p2 = runChatUiEventListener(store.handleSessionStart, [{ custom: 'data' }]);\n\n const [r1, r2] = await Promise.all([p1, p2]);\n\n expect(r1.session).toEqual(createSession(1));\n expect(r2.session).toEqual(createSession(1));\n expect(chatbotApi.postSession).toHaveBeenCalledTimes(1);\n expect(chatbotApi.postSession).toHaveBeenCalledWith(\n {\n data: { custom: 'data' },\n },\n expect.any(AbortSignal)\n );\n });\n\n test('should handle forced calls', async () => {\n chatbotApi.postSession.mockResolvedValue(createSession(1));\n const { session } = await runChatUiEventListener(store.handleSessionStart, [\n { custom: 'data' },\n ]);\n\n chatbotApi.postSession.mockResolvedValue(createSession(2));\n const { session: session2 } = await runChatUiEventListener(\n store.handleSessionStart,\n [{ custom: 'data' }]\n );\n expect(chatbotApi.postSession).toHaveBeenCalledTimes(1);\n expect(session?.id).toEqual(1);\n expect(session2?.id).toEqual(1);\n expect(session === session2).toBe(true);\n\n // Make api call return another session object and ensure that after\n chatbotApi.postSession.mockResolvedValue(createSession(3));\n const { session: session3 } = await runChatUiEventListener(\n store.handleSessionStart,\n [{ custom: 'data' }, true]\n );\n expect(chatbotApi.postSession).toHaveBeenCalledTimes(2);\n expect(session3?.id).toEqual(3);\n expect(session === session3).toBe(false);\n });\n });\n\n describe('with session feedback', () => {\n const createSessionFeedback = () =>\n ModelsMocks.mockFeedback({\n sessionId: 1,\n messageId: undefined,\n rating: Models.FeedbackRatings.ThumbsUp,\n description: 'description',\n });\n\n test('should send feedback', async () => {\n mockChatbotSession();\n\n chatbotApi.postFeedback.mockResolvedValueOnce(createSessionFeedback());\n\n const { feedback, state } = await runChatUiEventListener(\n store.handleSessionFeedback,\n [createSessionFeedback()]\n );\n\n expect(state).toBe(Models.ChatbotFeedbackState.Success);\n expect(feedback).toEqual(createSessionFeedback());\n expect(chatbotApi.postSession).toHaveBeenCalled();\n expect(chatbotApi.postFeedback).toHaveBeenCalledWith(\n createSessionFeedback(),\n expect.any(AbortSignal)\n );\n });\n\n test('should send feedback with session error', async () => {\n chatbotApi.postSession.mockRejectedValueOnce('session error');\n chatbotApi.postFeedback.mockResolvedValueOnce(createSessionFeedback());\n\n const { feedback, state } = await runChatUiEventListener(\n store.handleSessionFeedback,\n [createSessionFeedback()]\n );\n\n expect(state).toBe(Models.ChatbotFeedbackState.Failure);\n expect(feedback).toEqual(createSessionFeedback());\n expect(chatbotApi.postSession).toHaveBeenCalled();\n expect(chatbotApi.postFeedback).not.toHaveBeenCalled();\n expect(chatUiStore.isError).toBe(true);\n expect(log.error).toHaveBeenCalledWith({\n category: 'TitanChatbot',\n code: 'TitanChatbot_FailedToSendFeedback',\n error: 'session error',\n message: 'Failed to send feedback',\n });\n });\n\n test('should send feedback with error', async () => {\n mockChatbotSession();\n chatbotApi.postSession.mockReset().mockRejectedValue(new Error('session error'));\n chatbotApi.postFeedback.mockResolvedValueOnce(createSessionFeedback());\n\n const { feedback, state } = await runChatUiEventListener(\n store.handleSessionFeedback,\n [createSessionFeedback()]\n );\n\n expect(state).toBe(Models.ChatbotFeedbackState.Failure);\n expect(feedback).toEqual(createSessionFeedback());\n expect(chatbotApi.postSession).toHaveBeenCalled();\n expect(chatbotApi.postFeedback).not.toHaveBeenCalled();\n expect(chatUiStore.isError).toBe(true);\n expect(log.error).toHaveBeenCalledWith({\n category: 'TitanChatbot',\n code: 'TitanChatbot_FailedToSendFeedback',\n error: new Error('session error'),\n message: 'Failed to send feedback',\n });\n });\n });\n\n describe('with message feedback', () => {\n const createMessageFeedback = () =>\n ModelsMocks.mockFeedback({\n sessionId: 1,\n messageId: 1,\n description: 'description',\n linkUrl: 'linkUrl',\n options: [Models.FeedbackOptions.Unclear, Models.FeedbackOptions.Incorrect],\n rating: Models.FeedbackRatings.ThumbsUp,\n });\n const createLogError = (errorMessage: string) => ({\n category: 'TitanChatbot',\n code: 'TitanChatbot_FailedToSendMessageFeedback',\n error: errorMessage,\n message: 'Failed to send message feedback',\n });\n\n test('should assert message feedback 1', async () => {\n const { feedback, state } = await runChatUiEventListener(\n store.handleMessageFeedback,\n []\n );\n expect(feedback).toBeUndefined();\n expect(state).toBe(Models.ChatbotFeedbackState.Failure);\n expect(chatUiStore.isError).toBe(true);\n expect(chatUiStore.error?.message).toBe('Failed to send message feedback');\n expect(log.error).toHaveBeenCalledWith({\n category: 'TitanChatbot',\n code: 'TitanChatbot_FailedToSendMessageFeedback',\n error: new ChatError('Message feedback is missing.'),\n message: 'Failed to send message feedback',\n });\n expect(chatbotApi.postFeedback).not.toHaveBeenCalled();\n });\n\n test('should assert message feedback 3', async () => {\n chatbotApi.postSession.mockRejectedValueOnce('session error');\n const { feedback, state } = await runChatUiEventListener(\n store.handleMessageFeedback,\n [createMessageFeedback()]\n );\n expect(state).toBe(Models.ChatbotFeedbackState.Failure);\n expect(feedback).toEqual(createMessageFeedback());\n expect(chatUiStore.isError).toBe(true);\n expect(chatUiStore.error?.message).toBe('Failed to send message feedback');\n expect(log.error).toHaveBeenCalledWith({\n category: 'TitanChatbot',\n code: 'TitanChatbot_FailedToSendMessageFeedback',\n error: 'session error',\n message: 'Failed to send message feedback',\n });\n expect(chatbotApi.postFeedback).not.toHaveBeenCalled();\n });\n\n test('should send message feedback', async () => {\n mockChatbotSession();\n chatbotApi.postFeedback.mockResolvedValueOnce(createMessageFeedback());\n\n const feedback = createMessageFeedback();\n await runChatUiEventListener(store.handleMessageFeedback, [feedback]);\n\n expect(chatbotApi.postFeedback).toHaveBeenCalledWith(\n {\n ...feedback,\n },\n expect.any(AbortSignal)\n );\n });\n\n test('should send message feedback with session error', async () => {\n chatbotApi.postSession.mockRejectedValueOnce('session error');\n chatbotApi.postFeedback.mockResolvedValueOnce(createMessageFeedback());\n const feedback = createMessageFeedback();\n await runChatUiEventListener(store.handleMessageFeedback, [feedback]);\n\n expect(chatbotApi.postFeedback).not.toHaveBeenCalled();\n expect(log.error).toHaveBeenCalledWith(createLogError('session error'));\n });\n\n test('should send message feedback with feedback error', async () => {\n mockChatbotSession();\n chatbotApi.postFeedback.mockRejectedValueOnce('feedback error');\n const feedback = createMessageFeedback();\n await runChatUiEventListener(store.handleMessageFeedback, [feedback]);\n\n expect(chatbotApi.postFeedback).toHaveBeenCalledTimes(1);\n expect(log.error).toHaveBeenCalledWith(createLogError('feedback error'));\n });\n });\n });\n});\n"],"names":["expect","Log","ChatError","ChatRunState","CHATBOT_API_CLIENT","Models","ModelsMocks","ChatbotApiClientMock","initTestContainer","ChatbotUiBackendStore","CHATBOT_UI_STORE_TOKEN","ChatbotUiStore","WELCOME_MESSAGE","initContainer","container","bind","to","error","jest","fn","info","warning","inSingletonScope","toConstantValue","describe","store","chatbotApi","chatUiStore","log","beforeEach","get","useFakeTimers","setSystemTime","Date","afterEach","useRealTimers","clearAllMocks","spyOn","spyOff","test","subscribe","toHaveBeenCalledTimes","unsubscribe","on","off","runChatUiEventListener","listener","args","Promise","resolve","reject","apply","runStore","handleRun","advanceTimersToNextTimerAsync","mockChatbotSession","getOptions","mockResolvedValue","mockFrontendModel","postSession","mockSession","deleteSession","mockChatbotAnswer","answer","answerMock","mockBotMessage","id","postMessage","mockChatbotAnswers","answers","answerMocks","map","answerId","index","reverse","forEach","mock","mockResolvedValueOnce","ensureChatStarted","isAgentTyping","toBe","isFilePickerEnabled","file","undefined","currentFileMessage","endReason","timer","scrollCounter","status","Started","messages","length","type","message","session","toBeUndefined","botAnswer","sendMessageText","welcome","question","participant","isAgent","data","toEqual","selections","botAnswer1","botAnswer2","all","textMessages","question1","find","x","answer1","question2","answer2","advanceTimersByTimeAsync","not","toBeDefined","handleDestroy","Offline","handleRestart","at","handleMessageSend","mockRejectedValue","Error","toHaveBeenCalled","isError","toHaveBeenCalledWith","category","code","mockImplementation","setTimeout","p","objectContaining","setCustomizationContext","timeouts","chatbotRequestTimeoutMs","runOnlyPendingTimersAsync","fastAnswer","mockImplementationOnce","slowMessage","p1","abortController","signal","aborted","resetError","fastMessage","toMatchObject","p2","handleMessageSendRetry","spyMessage","messageNonText","mockChatMessageModel","mockUserMessage","context","any","AbortSignal","createSession","custom","spyGetData","defaultData","handleSessionStart","r1","r2","session2","session3","createSessionFeedback","mockFeedback","sessionId","messageId","rating","FeedbackRatings","ThumbsUp","description","postFeedback","feedback","state","handleSessionFeedback","ChatbotFeedbackState","Success","mockRejectedValueOnce","Failure","mockReset","createMessageFeedback","linkUrl","options","FeedbackOptions","Unclear","Incorrect","createLogError","errorMessage","handleMessageFeedback"],"mappings":"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"}
@@ -1,3 +1,16 @@
1
+ function _define_property(obj, key, value) {
2
+ if (key in obj) {
3
+ Object.defineProperty(obj, key, {
4
+ value: value,
5
+ enumerable: true,
6
+ configurable: true,
7
+ writable: true
8
+ });
9
+ } else {
10
+ obj[key] = value;
11
+ }
12
+ return obj;
13
+ }
1
14
  import { expect } from '@jest/globals';
2
15
  import { ChatError, ChatUiEvent } from '@servicetitan/titan-chat-ui-common';
3
16
  import { Models, ModelsMocks } from '../../api-client';
@@ -9,54 +22,29 @@ const mockEventEmitter = {
9
22
  off: jest.fn(),
10
23
  emit: jest.fn(),
11
24
  listeners: jest.fn(),
12
- listenerCount: jest.fn(),
25
+ listenerCount: jest.fn()
13
26
  };
14
- jest.mock('events', () => ({
15
- EventEmitter: class {
16
- constructor() {
17
- Object.defineProperty(this, "on", {
18
- enumerable: true,
19
- configurable: true,
20
- writable: true,
21
- value: mockEventEmitter.on
22
- });
23
- Object.defineProperty(this, "off", {
24
- enumerable: true,
25
- configurable: true,
26
- writable: true,
27
- value: mockEventEmitter.off
28
- });
29
- Object.defineProperty(this, "emit", {
30
- enumerable: true,
31
- configurable: true,
32
- writable: true,
33
- value: mockEventEmitter.emit
34
- });
35
- Object.defineProperty(this, "listeners", {
36
- enumerable: true,
37
- configurable: true,
38
- writable: true,
39
- value: mockEventEmitter.listeners
40
- });
41
- Object.defineProperty(this, "listenerCount", {
42
- enumerable: true,
43
- configurable: true,
44
- writable: true,
45
- value: mockEventEmitter.listenerCount
46
- });
27
+ jest.mock('events', ()=>({
28
+ EventEmitter: class {
29
+ constructor(){
30
+ _define_property(this, "on", mockEventEmitter.on);
31
+ _define_property(this, "off", mockEventEmitter.off);
32
+ _define_property(this, "emit", mockEventEmitter.emit);
33
+ _define_property(this, "listeners", mockEventEmitter.listeners);
34
+ _define_property(this, "listenerCount", mockEventEmitter.listenerCount);
35
+ }
47
36
  }
48
- },
49
- }));
50
- const initContainer = initTestContainer(ChatbotUiStore, () => { });
51
- describe('[ChatbotUiStore]', () => {
37
+ }));
38
+ const initContainer = initTestContainer(ChatbotUiStore, ()=>{});
39
+ describe('[ChatbotUiStore]', ()=>{
52
40
  let store;
53
- beforeEach(() => {
41
+ beforeEach(()=>{
54
42
  const container = initContainer();
55
43
  store = container.get(ChatbotUiStore);
56
44
  jest.useFakeTimers();
57
45
  jest.setSystemTime(Date.parse('2021-01-01T00:00:00.000Z'));
58
46
  });
59
- afterEach(() => {
47
+ afterEach(()=>{
60
48
  jest.useRealTimers();
61
49
  jest.clearAllMocks();
62
50
  mockEventEmitter.on.mockClear();
@@ -65,64 +53,68 @@ describe('[ChatbotUiStore]', () => {
65
53
  mockEventEmitter.listeners.mockClear();
66
54
  mockEventEmitter.listenerCount.mockClear();
67
55
  });
68
- test('should have default state', () => {
56
+ test('should have default state', ()=>{
69
57
  expect(store.filterStore).toBeInstanceOf(FilterStore);
70
58
  });
71
- test('should setFilters', () => {
59
+ test('should setFilters', ()=>{
72
60
  const frontendModel = ModelsMocks.mockFrontendModel();
73
61
  store.setFilters(frontendModel);
74
62
  expect(store.filterStore.filters.length).toEqual(3);
75
63
  expect(store.filterStore.filters[0].key).toEqual('Sources');
76
64
  });
77
- describe('with chat events', () => {
78
- test('should startSession', async () => {
65
+ describe('with chat events', ()=>{
66
+ test('should startSession', async ()=>{
79
67
  mockEmit();
80
- mockEventEmitter.emit.mockImplementation(async (eventName, resolve) => {
68
+ mockEventEmitter.emit.mockImplementation(async (eventName, resolve)=>{
81
69
  await Promise.resolve();
82
70
  resolve(ModelsMocks.mockSession());
83
71
  });
84
- const sessionData = { customData: 'customData' };
72
+ const sessionData = {
73
+ customData: 'customData'
74
+ };
85
75
  const session = await store.startSession(sessionData, true);
86
76
  expect(session).toBeDefined();
87
77
  expect(session === null || session === void 0 ? void 0 : session.id).toBe(1);
88
78
  expect(mockEventEmitter.emit).toHaveBeenCalledWith(ChatbotUiEvent.eventChatbotSessionStart, expect.any(Function), expect.any(Function), sessionData, true);
89
79
  });
90
- test('should sendSessionFeedback', async () => {
80
+ test('should sendSessionFeedback', async ()=>{
91
81
  mockEmit();
92
82
  const feedback = new Models.Feedback({
93
83
  sessionId: 1,
94
84
  rating: Models.FeedbackRatings.ThumbsDown,
95
- description: 'description',
85
+ description: 'description'
96
86
  });
97
87
  await store.sendSessionFeedback(feedback);
98
88
  expect(mockEventEmitter.emit).toHaveBeenCalledWith(ChatbotUiEvent.eventChatbotSessionFeedback, expect.any(Function), expect.any(Function), feedback);
99
89
  });
100
- test('should sendMessageFeedback', async () => {
90
+ test('should sendMessageFeedback', async ()=>{
101
91
  mockEmit();
102
92
  const feedback = new Models.Feedback({
103
93
  sessionId: 1,
104
94
  messageId: 1,
105
95
  linkUrl: 'https://example.com/feedback',
106
- options: [Models.FeedbackOptions.Unclear],
96
+ options: [
97
+ Models.FeedbackOptions.Unclear
98
+ ],
107
99
  rating: Models.FeedbackRatings.ThumbsUp,
108
- description: 'description',
100
+ description: 'description'
109
101
  });
110
102
  const message = {
111
103
  id: 1,
112
104
  sessionId: 1,
113
105
  answer: 'message text',
114
106
  guardFlag: 'N',
115
- isGuardrailed: false,
107
+ isGuardrailed: false
116
108
  };
117
109
  await store.sendMessageFeedback(message, feedback);
118
110
  expect(mockEventEmitter.emit).toHaveBeenCalledWith(ChatbotUiEvent.eventChatbotMessageFeedback, expect.any(Function), expect.any(Function), feedback);
119
111
  expect(feedback.messageId).toBe(message.id);
120
112
  });
121
- test('should recover', async () => {
113
+ test('should recover', async ()=>{
122
114
  mockEmit();
123
115
  const spyRecoverCustomization = jest.fn().mockResolvedValue(undefined);
124
116
  store.customizations.error = {
125
- recover: spyRecoverCustomization,
117
+ recover: spyRecoverCustomization
126
118
  };
127
119
  store.setError('Test error');
128
120
  await store.recover();
@@ -130,7 +122,7 @@ describe('[ChatbotUiStore]', () => {
130
122
  expect(mockEventEmitter.emit).not.toHaveBeenCalled();
131
123
  await checkScrollTriggered();
132
124
  });
133
- test('should recover without customizations', async () => {
125
+ test('should recover without customizations', async ()=>{
134
126
  mockEmit();
135
127
  const spyRecoverCustomization = jest.fn().mockResolvedValue(undefined);
136
128
  store.setError('Test error');
@@ -139,40 +131,44 @@ describe('[ChatbotUiStore]', () => {
139
131
  expect(mockEventEmitter.emit).toHaveBeenCalledWith(ChatUiEvent.eventRecover, expect.any(Function), expect.any(Function), new ChatError('Test error'));
140
132
  await checkScrollTriggered();
141
133
  });
142
- test('should sendMessageText with timeoutMs option', async () => {
134
+ test('should sendMessageText with timeoutMs option', async ()=>{
143
135
  mockEmit();
144
136
  const messageText = 'Hello, world!';
145
- await store.sendMessageText(messageText, { timeoutMs: 50 });
137
+ await store.sendMessageText(messageText, {
138
+ timeoutMs: 50
139
+ });
146
140
  expect(mockEventEmitter.emit).toHaveBeenCalledWith(ChatUiEvent.eventMessageSend, expect.any(Function), expect.any(Function), expect.objectContaining({
147
141
  type: 'message',
148
- message: messageText,
142
+ message: messageText
149
143
  }), store.filterStore.export(), 50);
150
144
  });
151
- test('should sendMessageText without message', async () => {
145
+ test('should sendMessageText without message', async ()=>{
152
146
  mockEmit();
153
147
  await store.sendMessageText('');
154
148
  expect(mockEventEmitter.emit).not.toHaveBeenCalledWith(ChatUiEvent.eventMessageSend, expect.any(Function), expect.any(Function), expect.objectContaining({
155
149
  type: 'message',
156
- message: '',
150
+ message: ''
157
151
  }), store.filterStore.export());
158
152
  expect(mockEventEmitter.emit).toHaveBeenCalledWith(ChatUiEvent.eventTimerRestart, expect.any(Function), expect.any(Function));
159
153
  await checkScrollTriggered(false);
160
154
  });
161
- test('should sendMessageText', async () => {
155
+ test('should sendMessageText', async ()=>{
162
156
  mockEmit();
163
157
  const messageText = 'Hello, world!';
164
158
  await store.sendMessageText(messageText);
165
159
  expect(mockEventEmitter.emit).toHaveBeenCalledWith(ChatUiEvent.eventMessageSend, expect.any(Function), expect.any(Function), expect.objectContaining({
166
160
  type: 'message',
167
- message: messageText,
161
+ message: messageText
168
162
  }), store.filterStore.export());
169
163
  expect(mockEventEmitter.emit).toHaveBeenCalledWith(ChatUiEvent.eventTimerRestart, expect.any(Function), expect.any(Function));
170
164
  await checkScrollTriggered();
171
165
  });
172
166
  function mockEmit() {
173
- mockEventEmitter.listeners.mockImplementation(() => ['1']);
167
+ mockEventEmitter.listeners.mockImplementation(()=>[
168
+ '1'
169
+ ]);
174
170
  mockEventEmitter.listenerCount.mockReturnValue(1);
175
- mockEventEmitter.emit.mockImplementation(async (eventName, resolve) => {
171
+ mockEventEmitter.emit.mockImplementation(async (eventName, resolve)=>{
176
172
  await Promise.resolve();
177
173
  resolve();
178
174
  });
@@ -184,4 +180,5 @@ describe('[ChatbotUiStore]', () => {
184
180
  }
185
181
  });
186
182
  });
183
+
187
184
  //# sourceMappingURL=chatbot-ui.store.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chatbot-ui.store.test.js","sourceRoot":"","sources":["../../../src/stores/__tests__/chatbot-ui.store.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/stores/__tests__/chatbot-ui.store.test.ts"],"sourcesContent":["import { expect } from '@jest/globals';\nimport { ChatError, ChatUiEvent } from '@servicetitan/titan-chat-ui-common';\nimport { Models, ModelsMocks } from '../../api-client';\nimport { initTestContainer } from '../../utils/test-utils';\nimport { ChatbotUiEvent, ChatbotUiStore } from '../chatbot-ui.store';\nimport { FilterStore } from '../filter.store';\n\nconst mockEventEmitter = {\n on: jest.fn(),\n off: jest.fn(),\n emit: jest.fn(),\n listeners: jest.fn(),\n listenerCount: jest.fn(),\n};\njest.mock('events', () => ({\n EventEmitter: class {\n on = mockEventEmitter.on;\n off = mockEventEmitter.off;\n emit = mockEventEmitter.emit;\n listeners = mockEventEmitter.listeners;\n listenerCount = mockEventEmitter.listenerCount;\n },\n}));\n\nconst initContainer = initTestContainer(ChatbotUiStore, () => {});\n\ndescribe('[ChatbotUiStore]', () => {\n let store: ChatbotUiStore;\n\n beforeEach(() => {\n const container = initContainer();\n store = container.get(ChatbotUiStore);\n jest.useFakeTimers();\n jest.setSystemTime(Date.parse('2021-01-01T00:00:00.000Z'));\n });\n\n afterEach(() => {\n jest.useRealTimers();\n jest.clearAllMocks();\n mockEventEmitter.on.mockClear();\n mockEventEmitter.off.mockClear();\n mockEventEmitter.emit.mockClear();\n mockEventEmitter.listeners.mockClear();\n mockEventEmitter.listenerCount.mockClear();\n });\n\n test('should have default state', () => {\n expect(store.filterStore).toBeInstanceOf(FilterStore);\n });\n\n test('should setFilters', () => {\n const frontendModel = ModelsMocks.mockFrontendModel();\n store.setFilters(frontendModel);\n\n expect(store.filterStore.filters.length).toEqual(3);\n expect(store.filterStore.filters[0].key).toEqual('Sources');\n });\n\n describe('with chat events', () => {\n test('should startSession', async () => {\n mockEmit();\n mockEventEmitter.emit.mockImplementation(\n async (eventName: string, resolve: (session: Models.ISession) => void) => {\n await Promise.resolve();\n resolve(ModelsMocks.mockSession());\n }\n );\n const sessionData = { customData: 'customData' };\n const session = await store.startSession(sessionData, true);\n expect(session).toBeDefined();\n expect(session?.id).toBe(1);\n expect(mockEventEmitter.emit).toHaveBeenCalledWith(\n ChatbotUiEvent.eventChatbotSessionStart,\n expect.any(Function),\n expect.any(Function),\n sessionData,\n true\n );\n });\n\n test('should sendSessionFeedback', async () => {\n mockEmit();\n const feedback = new Models.Feedback({\n sessionId: 1,\n rating: Models.FeedbackRatings.ThumbsDown,\n description: 'description',\n });\n await store.sendSessionFeedback(feedback);\n expect(mockEventEmitter.emit).toHaveBeenCalledWith(\n ChatbotUiEvent.eventChatbotSessionFeedback,\n expect.any(Function),\n expect.any(Function),\n feedback\n );\n });\n\n test('should sendMessageFeedback', async () => {\n mockEmit();\n const feedback = new Models.Feedback({\n sessionId: 1,\n messageId: 1,\n linkUrl: 'https://example.com/feedback',\n options: [Models.FeedbackOptions.Unclear],\n rating: Models.FeedbackRatings.ThumbsUp,\n description: 'description',\n });\n const message: Models.IBotMessage = {\n id: 1,\n sessionId: 1,\n answer: 'message text',\n guardFlag: 'N',\n isGuardrailed: false,\n };\n await store.sendMessageFeedback(message, feedback);\n expect(mockEventEmitter.emit).toHaveBeenCalledWith(\n ChatbotUiEvent.eventChatbotMessageFeedback,\n expect.any(Function),\n expect.any(Function),\n feedback\n );\n expect(feedback.messageId).toBe(message.id);\n });\n\n test('should recover', async () => {\n mockEmit();\n const spyRecoverCustomization = jest.fn().mockResolvedValue(undefined);\n store.customizations.error = {\n recover: spyRecoverCustomization,\n };\n store.setError('Test error');\n\n await store.recover();\n\n expect(spyRecoverCustomization).toHaveBeenCalledWith(store.error);\n expect(mockEventEmitter.emit).not.toHaveBeenCalled();\n await checkScrollTriggered();\n });\n\n test('should recover without customizations', async () => {\n mockEmit();\n const spyRecoverCustomization = jest.fn().mockResolvedValue(undefined);\n store.setError('Test error');\n\n await store.recover();\n\n expect(spyRecoverCustomization).not.toHaveBeenCalled();\n expect(mockEventEmitter.emit).toHaveBeenCalledWith(\n ChatUiEvent.eventRecover,\n expect.any(Function),\n expect.any(Function),\n new ChatError('Test error')\n );\n await checkScrollTriggered();\n });\n\n test('should sendMessageText with timeoutMs option', async () => {\n mockEmit();\n const messageText = 'Hello, world!';\n await store.sendMessageText(messageText, { timeoutMs: 50 });\n\n expect(mockEventEmitter.emit).toHaveBeenCalledWith(\n ChatUiEvent.eventMessageSend,\n expect.any(Function),\n expect.any(Function),\n expect.objectContaining({\n type: 'message',\n message: messageText,\n }),\n store.filterStore.export(),\n 50\n );\n });\n\n test('should sendMessageText without message', async () => {\n mockEmit();\n await store.sendMessageText('');\n expect(mockEventEmitter.emit).not.toHaveBeenCalledWith(\n ChatUiEvent.eventMessageSend,\n expect.any(Function),\n expect.any(Function),\n expect.objectContaining({\n type: 'message',\n message: '',\n }),\n store.filterStore.export()\n );\n expect(mockEventEmitter.emit).toHaveBeenCalledWith(\n ChatUiEvent.eventTimerRestart,\n expect.any(Function),\n expect.any(Function)\n );\n await checkScrollTriggered(false);\n });\n\n test('should sendMessageText', async () => {\n mockEmit();\n const messageText = 'Hello, world!';\n await store.sendMessageText(messageText);\n\n expect(mockEventEmitter.emit).toHaveBeenCalledWith(\n ChatUiEvent.eventMessageSend,\n expect.any(Function),\n expect.any(Function),\n expect.objectContaining({\n type: 'message',\n message: messageText,\n }),\n store.filterStore.export()\n );\n expect(mockEventEmitter.emit).toHaveBeenCalledWith(\n ChatUiEvent.eventTimerRestart,\n expect.any(Function),\n expect.any(Function)\n );\n await checkScrollTriggered();\n });\n\n function mockEmit() {\n mockEventEmitter.listeners.mockImplementation(() => ['1']);\n mockEventEmitter.listenerCount.mockReturnValue(1);\n mockEventEmitter.emit.mockImplementation(\n async (eventName: string, resolve: () => void) => {\n await Promise.resolve();\n resolve();\n }\n );\n }\n\n async function checkScrollTriggered(triggered = true) {\n const counter = store.scrollCounter;\n await jest.runOnlyPendingTimersAsync();\n expect(counter < store.scrollCounter).toBe(triggered);\n }\n });\n});\n"],"names":["expect","ChatError","ChatUiEvent","Models","ModelsMocks","initTestContainer","ChatbotUiEvent","ChatbotUiStore","FilterStore","mockEventEmitter","on","jest","fn","off","emit","listeners","listenerCount","mock","EventEmitter","initContainer","describe","store","beforeEach","container","get","useFakeTimers","setSystemTime","Date","parse","afterEach","useRealTimers","clearAllMocks","mockClear","test","filterStore","toBeInstanceOf","frontendModel","mockFrontendModel","setFilters","filters","length","toEqual","key","mockEmit","mockImplementation","eventName","resolve","Promise","mockSession","sessionData","customData","session","startSession","toBeDefined","id","toBe","toHaveBeenCalledWith","eventChatbotSessionStart","any","Function","feedback","Feedback","sessionId","rating","FeedbackRatings","ThumbsDown","description","sendSessionFeedback","eventChatbotSessionFeedback","messageId","linkUrl","options","FeedbackOptions","Unclear","ThumbsUp","message","answer","guardFlag","isGuardrailed","sendMessageFeedback","eventChatbotMessageFeedback","spyRecoverCustomization","mockResolvedValue","undefined","customizations","error","recover","setError","not","toHaveBeenCalled","checkScrollTriggered","eventRecover","messageText","sendMessageText","timeoutMs","eventMessageSend","objectContaining","type","export","eventTimerRestart","mockReturnValue","triggered","counter","scrollCounter","runOnlyPendingTimersAsync"],"mappings":"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"}