UNPKG

@thoughtspot/visual-embed-sdk

Version:
130 lines 6.88 kB
import { SpotterEmbed, } from './conversation'; import * as authInstance from '../auth'; import { Action, init } from '../index'; import { AuthType, Param } from '../types'; import { getDocumentBody, getIFrameSrc, getRootEl, defaultParamsWithoutHiddenActions as defaultParams, expectUrlMatchesWithParams, } from '../test/test-utils'; import { ERROR_MESSAGE } from '../errors'; const thoughtSpotHost = 'tshost'; beforeAll(() => { init({ thoughtSpotHost, authType: AuthType.None, }); jest.spyOn(authInstance, 'postLoginService').mockImplementation(() => Promise.resolve({})); spyOn(window, 'alert'); document.body.innerHTML = getDocumentBody(); }); describe('ConversationEmbed', () => { it('should render the conversation embed', async () => { const viewConfig = { worksheetId: 'worksheetId', searchOptions: { searchQuery: 'searchQuery', }, }; const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig); await conversationEmbed.render(); expectUrlMatchesWithParams(getIFrameSrc(), `http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`); }); it('should render the conversation embed with worksheets disabled', async () => { const viewConfig = { worksheetId: 'worksheetId', searchOptions: { searchQuery: 'searchQuery', }, disableSourceSelection: true, }; const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig); await conversationEmbed.render(); expectUrlMatchesWithParams(getIFrameSrc(), `http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true&disableSourceSelection=true#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`); }); it('should render the conversation embed with spotter limitations text if flag is set', async () => { const viewConfig = { worksheetId: 'worksheetId', searchOptions: { searchQuery: 'searchQuery', }, showSpotterLimitations: true, }; const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig); await conversationEmbed.render(); expectUrlMatchesWithParams(getIFrameSrc(), `http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true&showSpotterLimitations=true#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`); }); it('should render the conversation embed with sample questions hidden', async () => { const viewConfig = { worksheetId: 'worksheetId', searchOptions: { searchQuery: 'searchQuery', }, hideSampleQuestions: true, }; const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig); await conversationEmbed.render(); expectUrlMatchesWithParams(getIFrameSrc(), `http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true&hideSampleQuestions=true#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`); }); it('should render the conversation embed with worksheets hidden', async () => { const viewConfig = { worksheetId: 'worksheetId', searchOptions: { searchQuery: 'searchQuery', }, hideSourceSelection: true, }; const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig); await conversationEmbed.render(); expectUrlMatchesWithParams(getIFrameSrc(), `http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true&hideSourceSelection=true#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`); }); it('should handle error when worksheetId is not provided', async () => { const viewConfig = { worksheetId: '', searchOptions: { searchQuery: 'searchQuery', }, }; const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig); conversationEmbed.handleError = jest.fn(); await conversationEmbed.render(); expect(conversationEmbed.handleError).toHaveBeenCalledWith(ERROR_MESSAGE.SPOTTER_EMBED_WORKSHEED_ID_NOT_FOUND); }); it('should render the conversation embed if data panel v2 flag is true', async () => { const viewConfig = { worksheetId: 'worksheetId', searchOptions: { searchQuery: 'searchQuery', }, dataPanelV2: true, }; const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig); await conversationEmbed.render(); expectUrlMatchesWithParams(getIFrameSrc(), `http://${thoughtSpotHost}/v2/?${defaultParams}&isSpotterExperienceEnabled=true&enableDataPanelV2=true#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`); }); it('should render the conversation embed with hidden actions of InConversationTraining if set', async () => { const viewConfig = { worksheetId: 'worksheetId', searchOptions: { searchQuery: 'searchQuery', }, dataPanelV2: true, hiddenActions: [Action.InConversationTraining] }; const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig); await conversationEmbed.render(); expectUrlMatchesWithParams(getIFrameSrc(), `http://${thoughtSpotHost}/v2/?${defaultParams}&hideAction=[%22${Action.ReportError}%22,%22${Action.InConversationTraining}%22]&isSpotterExperienceEnabled=true&enableDataPanelV2=true#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`); }); it('should render the conversation embed with disabled actions of InConversationTraining if set', async () => { const disabledReason = 'testing disabled reason'; const viewConfig = { worksheetId: 'worksheetId', searchOptions: { searchQuery: 'searchQuery', }, dataPanelV2: true, disabledActions: [Action.InConversationTraining], disabledActionReason: disabledReason, }; const conversationEmbed = new SpotterEmbed(getRootEl(), viewConfig); await conversationEmbed.render(); expectUrlMatchesWithParams(getIFrameSrc(), `http://${thoughtSpotHost}/v2/?${defaultParams}&${Param.DisableActions}=[%22${Action.InConversationTraining}%22]&${Param.DisableActionReason}=${disabledReason}&isSpotterExperienceEnabled=true&enableDataPanelV2=true#/embed/insights/conv-assist?worksheet=worksheetId&query=searchQuery`); }); }); //# sourceMappingURL=conversation.spec.js.map