about summary refs log tree commit diff
path: root/__tests__/view/com/composer/Autocomplete.test.tsx
blob: 57539b75eeaea0193eed5e8539b0adfb12e5eb2d (plain) (blame)
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
import React from 'react'
import {Autocomplete} from '../../../../src/view/com/composer/Autocomplete'
import {cleanup, fireEvent, render} from '../../../../jest/test-utils'

describe('Autocomplete', () => {
  const onSelectMock = jest.fn()
  const mockedProps = {
    active: true,
    items: [
      {
        handle: 'handle.test',
        displayName: 'Test Display',
      },
      {
        handle: 'handle2.test',
        displayName: 'Test Display 2',
      },
    ],
    onSelect: onSelectMock,
  }

  afterAll(() => {
    jest.clearAllMocks()
    cleanup()
  })

  it('renders a button for each user', async () => {
    const {findAllByTestId} = render(<Autocomplete {...mockedProps} />)
    const autocompleteButton = await findAllByTestId('autocompleteButton')
    expect(autocompleteButton.length).toBe(2)
  })

  it('triggers onSelect by pressing the button', async () => {
    const {findAllByTestId} = render(<Autocomplete {...mockedProps} />)
    const autocompleteButton = await findAllByTestId('autocompleteButton')

    fireEvent.press(autocompleteButton[0])
    expect(onSelectMock).toHaveBeenCalledWith('handle.test')

    fireEvent.press(autocompleteButton[1])
    expect(onSelectMock).toHaveBeenCalledWith('handle2.test')
  })
})