Я вижу, вы делаете следующее:
sinon.spy(instance.socketClient(
message,
user,
));
Я предполагаю, что socketClient - это экземпляр объекта, а не функция, но я не могу быть уверен, не увидев код этой части.
Если вы думаете, что намереваетесь шпионить за методом onSendMessage
из socketClient
. sinon.spy
ожидает от вас либо прохождения функции, либо объекта + функции (если вы пытаетесь шпионить за методом экземпляра). Попробуйте следующее:
sinon.spy(instance.socketClient, 'onSendMessage');
Полное решение:
it('should call sendMessage function', () => {
const wrapper = shallow(<Chat user={user} />);
const instance = wrapper.instance();
const socketClient = new socketEvent();
const spy = sinon.spy(socketClient, 'onSendMessage');
instance.socketClient = socketClient;
instance.sendMessage(message);
sinon.assert.calledWith(spy, message, user);
});