Ожидаемая фиктивная функция была названа -Async - PullRequest
0 голосов
/ 21 мая 2019

Попытка создать контрольный пример для следующей функции. Не знаком с асинхронностью и ожиданием, используя Jest и Enzyme для React Js. Цель: пройти тест правильно И убедитесь, что функция вызывается правильно

  async patchPolicy() {
const { user, services } = this.props;
let { data } = this.state;
let body = { 
  "Policies": [{
    "Choices": data.Choices ||''
  }]
}
PolicyModels.patchWork({ 
  user,
  services,
  body,
  id: this.state.Policy
})
let contextBody = data.WORK_CONTEXT[0];
let Context_UID = '';
let method = 'POST';
if(contextBody) { //
  if(contextBody.Context_UID) { //If has UID, Patch
    PolicyModels.patchWorkContext({ 
      user,
      services,
      body: contextBody,
      id: contextBody.Context_UID
      })
  } else {
    contextBody.WorkID = this.state.data.WorkID
    PolicyModels.patchWorkContext({ 
      user,
      services,
      body: contextBody,
      id: contextBody.Context_UID
      })
  }
}
}

Создал следующий тест для него, но я продолжаю получать это сообщение: ожидать (jest.fn ()). toHaveBeenCalled () Ожидаемая фиктивная функция была вызвана.

  const patchWorkMock = jest.fn();
 PolicyModels.patchWorkContext = patchWorkMock;

  beforeEach(() => (wrapper = mount(<MemoryRouter keyLength={0}><EditPolicy {...baseProps} /></MemoryRouter>)

  it('Test patchPolicy function', async ()  => {
    wrapper.setProps({
     services:{},
     user:{},
   })
 wrapper.find('EditPolicy').setState({
   data:{
     Policy:{},
     Description:{},
     Help_UID:{},
     Choices:{},
     WorkID:[],
     WORK_CONTEXT:[],
    }, 
  });
 wrapper.update();
 wrapper.find('EditPolicy').instance().patchPolicy()
expect(patchWorkMock).toHaveBeenCalled();
return wrapper.find('EditPolicy').instance().patchPolicy().then(result => 
 {
expect(result).toBeUndefined()
  });
 });

Ожидайте, что функция будет вызвана / и будет работать правильно. Мне удалось сдать тест, но я верю, что он ничего не добавил к его освещению.

...