File size: 1,283 Bytes
3b6afc0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import React from 'react';
import { render, fireEvent } from '@testing-library/react';
import '@testing-library/jest-dom/extend-expect';
import { ClearChatsButton } from './General';
import { RecoilRoot } from 'recoil';

describe('ClearChatsButton', () => {
  let mockOnClick;

  beforeEach(() => {
    mockOnClick = jest.fn();
  });

  it('renders correctly', () => {
    const { getByText } = render(
      <RecoilRoot>
        <ClearChatsButton confirmClear={false} showText={true} onClick={mockOnClick} />
      </RecoilRoot>,
    );

    expect(getByText('Clear all chats')).toBeInTheDocument();
    expect(getByText('Clear')).toBeInTheDocument();
  });

  it('renders confirm clear when confirmClear is true', () => {
    const { getByText } = render(
      <RecoilRoot>
        <ClearChatsButton confirmClear={true} showText={true} onClick={mockOnClick} />
      </RecoilRoot>,
    );

    expect(getByText('Confirm Clear')).toBeInTheDocument();
  });

  it('calls onClick when the button is clicked', () => {
    const { getByText } = render(
      <RecoilRoot>
        <ClearChatsButton confirmClear={false} showText={true} onClick={mockOnClick} />
      </RecoilRoot>,
    );

    fireEvent.click(getByText('Clear'));

    expect(mockOnClick).toHaveBeenCalled();
  });
});