import React from 'react';
import { render } from '@testing-library/react';
import Chat from './Chat';
import {
memori,
tenant,
history,
historyWithMedia,
sessionID,
dialogState as dialogStateWithHints,
} from '../../mocks/data';
import memoriApiClient from '@memori.ai/memori-api-client';
import { ArtifactProvider } from '../MemoriArtifactSystem/context/ArtifactContext';
const client = memoriApiClient();
const dialogState = {
...dialogStateWithHints,
hints: [],
};
const DateTimeFormat = Intl.DateTimeFormat;
beforeEach(() => {
jest.spyOn(Intl, 'DateTimeFormat').mockImplementation(
(locale, options) =>
new DateTimeFormat(locale, {
...options,
timeZone: 'Europe/Rome',
})
);
});
it('renders Chat unchanged', () => {
const { container } = render(
);
expect(container).toMatchSnapshot();
});
it('renders Chat with memori typing unchanged', () => {
const { container } = render(
);
expect(container).toMatchSnapshot();
});
it('renders Chat with hints unchanged', () => {
const { container } = render(
);
expect(container).toMatchSnapshot();
});
it('renders Chat with media unchanged', () => {
const { container } = render(
);
expect(container).toMatchSnapshot();
});
it('renders Chat with dates unchanged', () => {
const { container } = render(
);
expect(container).toMatchSnapshot();
});
it('renders Chat with context vars unchanged', () => {
const { container } = render(
);
expect(container).toMatchSnapshot();
});
it('renders Chat with message consumption unchanged', () => {
const { container } = render(
);
expect(container).toMatchSnapshot();
});
it('renders Chat with user unchanged', () => {
const { container } = render(
);
expect(container).toMatchSnapshot();
});
it('renders Chat with custom user avatar unchanged', () => {
const { container } = render(
);
expect(container).toMatchSnapshot();
});
it('renders Chat with custom user avatar as react element unchanged', () => {
const { container } = render(
USER}
memori={memori}
tenant={tenant}
dialogState={dialogState}
layout="DEFAULT"
client={client}
history={history}
pushMessage={jest.fn()}
sessionID={sessionID}
simulateUserPrompt={jest.fn()}
setAttachmentsMenuOpen={jest.fn()}
setSendOnEnter={jest.fn()}
userMessage=""
onChangeUserMessage={jest.fn()}
sendMessage={jest.fn()}
isPlayingAudio={false}
stopAudio={jest.fn()}
showMicrophone={false}
listening={false}
startListening={jest.fn()}
stopListening={jest.fn()}
setEnableFocusChatInput={jest.fn()}
/>
);
expect(container).toMatchSnapshot();
});