about summary refs log tree commit diff
path: root/__tests__/view/com/composer/PhotoCarouselPicker.test.tsx
blob: ef84776527dcbd2543cf2bd230897c8dfc98fc06 (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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import React from 'react'
import {PhotoCarouselPicker} from '../../../../src/view/com/composer/PhotoCarouselPicker'
import {cleanup, fireEvent, render} from '../../../../jest/test-utils'
import {
  openCamera,
  openCropper,
  openPicker,
} from 'react-native-image-crop-picker'

describe('PhotoCarouselPicker', () => {
  const mockedProps = {
    selectedPhotos: ['mock-uri', 'mock-uri-2'],
    onSelectPhotos: jest.fn(),
    localPhotos: {
      photos: [
        {
          node: {
            image: {
              uri: 'mock-uri',
            },
          },
        },
      ],
    },
  }

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

  it('renders carousel picker', async () => {
    const {findByTestId} = render(<PhotoCarouselPicker {...mockedProps} />)
    const photoCarouselPickerView = await findByTestId(
      'photoCarouselPickerView',
    )
    expect(photoCarouselPickerView).toBeTruthy()
  })

  it('triggers openCamera', async () => {
    const {findByTestId} = render(<PhotoCarouselPicker {...mockedProps} />)
    const openCameraButton = await findByTestId('openCameraButton')
    fireEvent.press(openCameraButton)

    expect(openCamera).toHaveBeenCalledWith({
      compressImageQuality: 1,
      cropping: true,
      forceJpg: true,
      freeStyleCropEnabled: true,
      height: 1000,
      mediaType: 'photo',
      width: 1000,
    })
  })

  it('triggers openCropper', async () => {
    const {findByTestId} = render(<PhotoCarouselPicker {...mockedProps} />)
    const openSelectPhotoButton = await findByTestId('openSelectPhotoButton')
    fireEvent.press(openSelectPhotoButton)

    expect(openCropper).toHaveBeenCalledWith({
      compressImageQuality: 1,
      forceJpg: true,
      freeStyleCropEnabled: true,
      height: 1000,
      mediaType: 'photo',
      path: 'mock-uri',
      width: 1000,
    })
  })

  it('triggers openPicker', async () => {
    const {findByTestId} = render(<PhotoCarouselPicker {...mockedProps} />)
    const openGalleryButton = await findByTestId('openGalleryButton')
    fireEvent.press(openGalleryButton)

    expect(openPicker).toHaveBeenCalledWith({
      maxFiles: 2,
      mediaType: 'photo',
      multiple: true,
    })
    expect(openCropper).toHaveBeenCalledWith({
      compressImageQuality: 1,
      forceJpg: true,
      freeStyleCropEnabled: true,
      height: 1000,
      mediaType: 'photo',
      path: 'mock-uri',
      width: 1000,
    })
  })
})