как смоделировать нажмите на вкладку в шутка / энзим - PullRequest
1 голос
/ 07 июля 2019

хочу написать простой тест 1- Нажмите на вкладку 2- см. Состояние воскрешено изменено 3- реальное содержание вкладки изменено

Моя проблема в том, что симуляция клика сработала, но setState не работает

test('selected tab change when click on tab', () => {
  const wrapper = shallow(<MyComponent />)
  const walletTab1 = findByTestAttr(wrapper, 'wallet-tab-1').dive().dive().dive().dive()


  console.log('shaloww',walletTab1.debug())
  walletTab1.simulate('click')

  const walletTabContainer = findByTestAttr(wrapper, 'wallet-tab-container-1')

  expect(walletTabContainer.length).toBe(1)
})

MyComponent


        <AppBar position="static" color="default" data-test="component-wallet">
          <Tabs
            data-test="wallet-tabs"
            value={selectedTab}
            onChange={(event, value) => {
               this.setState({selectedTab: val})
            }}
            indicatorColor="primary"
            textColor="primary"
            variant="scrollable"
            scrollButtons="auto"
          >
            <Tab data-test="wallet-tab-0" label="Item One" />
            <Tab data-test="wallet-tab-1" label="Item Two" />
            <Tab data-test="wallet-tab-2" label="Item Three" />
          </Tabs>
        </AppBar>
        {selectedTab === 0 && <TabContainer data-test="wallet-tab-container-0">Item One</TabContainer>}
        {selectedTab === 1 && <TabContainer data-test="wallet-tab-container-1">Item Two</TabContainer>}
        {selectedTab === 2 && <TabContainer data-test="wallet-tab-container-2">Item Three</TabContainer>}

после клика должно быть состояние (selectedTab) обновлено до 1

1 Ответ

0 голосов
/ 07 июля 2019
onChange={(event, value) => {
           this.setState({selectedTab: val})
        }}

В вашем коде нет такого понятия, как val, параметр вашей функции - value. Это проблема, я думаю.

...