// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
import '@testing-library/jest-dom';
import React from 'react';
import ChatBubble from '../../../../../src/components/ui/Chat/ChatBubble';
import lightTheme from '../../../../../src/theme/light';
import { renderWithTheme } from '../../../../test-helpers';
describe('ChatBubble', () => {
it('should render a ChatBubble component in the document', () => {
const component = (
test message
);
const { getByTestId } = renderWithTheme(lightTheme, component);
const message = getByTestId('chat-bubble');
expect(message).toBeInTheDocument();
});
it('should render content in the ChatBubble component', () => {
const component = (
test message
);
const { getByText } = renderWithTheme(lightTheme, component);
const content = getByText('test message');
expect(content).toBeInTheDocument();
});
it('should render the name in the ChatBubble component', () => {
const component = (
test message
);
const { queryByTestId } = renderWithTheme(lightTheme, component);
const name = queryByTestId('chat-bubble-sender-name');
expect(name).toBeInTheDocument();
});
it('should not render the name in the ChatBubble component if senderName is null', () => {
const component = test message;
const { queryByTestId } = renderWithTheme(lightTheme, component);
const name = queryByTestId('chat-bubble-sender-name');
expect(name).not.toBeInTheDocument();
});
it('should render timestamp in the ChatBubble component', () => {
const component = (
test message
);
const { queryByTestId } = renderWithTheme(lightTheme, component);
const timestamp = queryByTestId('chat-bubble-timestamp');
expect(timestamp).toBeInTheDocument();
});
it('should not render timestamp in the ChatBubble component if timestamp is null', () => {
const component = (
test message
);
const { queryByTestId } = renderWithTheme(lightTheme, component);
const timestamp = queryByTestId('chat-bubble-timestamp');
expect(timestamp).not.toBeInTheDocument();
});
it('should render a bubble tail in the ChatBubble component', () => {
const component = (
test message
);
const { getByTestId } = renderWithTheme(lightTheme, component);
const content = getByTestId('tail');
expect(content).toBeInTheDocument();
});
it('should not render a bubble tail in the ChatBubble component if showTail is false', () => {
const component = (
test message
);
const { queryByTestId } = renderWithTheme(lightTheme, component);
const name = queryByTestId('tail');
expect(name).not.toBeInTheDocument();
});
});