about summary refs log tree commit diff
path: root/__tests__/view/lib/useOnMainScroll.test.tsx
blob: 6fae037877ac482537eba66900fed3e70674b30b (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
import React from 'react'
import {fireEvent, render} from '../../../jest/test-utils'
import {Home} from '../../../src/view/screens/Home'
import {mockedRootStore, mockedShellStore} from '../../../__mocks__/state-mock'

describe('useOnMainScroll', () => {
  const mockedProps = {
    navIdx: '0-0',
    params: {},
    visible: true,
  }

  it('toggles minimalShellMode to true', () => {
    jest.useFakeTimers()
    const {getByTestId} = render(<Home {...mockedProps} />)

    fireEvent.scroll(getByTestId('homeFeed'), {
      nativeEvent: {
        contentOffset: {y: 20},
        contentSize: {height: 100},
        layoutMeasurement: {height: 50},
      },
    })

    expect(mockedRootStore.shell.setMinimalShellMode).toHaveBeenCalledWith(true)
  })

  it('toggles minimalShellMode to false', () => {
    jest.useFakeTimers()
    const {getByTestId} = render(<Home {...mockedProps} />, {
      ...mockedRootStore,
      shell: {
        ...mockedShellStore,
        minimalShellMode: true,
      },
    })

    fireEvent.scroll(getByTestId('homeFeed'), {
      nativeEvent: {
        contentOffset: {y: 0},
        contentSize: {height: 100},
        layoutMeasurement: {height: 50},
      },
    })
    expect(mockedRootStore.shell.setMinimalShellMode).toHaveBeenCalledWith(
      false,
    )
  })
})