Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I test the returned value in Jest?

I have a simple function that I want to test with Jest. I have read https://jestjs.io/docs/en/mock-functions many many times but I'm not sure whats going wrong and can't find a clear answer on stackoverflow. I feel like this is an extremely simple test.

Here is my function:

public hello(name: string) {
  return 'Hello ' + name
}

Here is my Test:

let hello = jest.fn()
jest.mock('./myfile.ts', () => {
  return hello
})

beforeEach(() => {
  hello('world')
})

describe('hello test', (){
  it('expects to return concatenated string', () => {
    expect(hello.mock.results[0].value).toBe('Hello world') // returns as undefined - Test fails
  })
})

I keep getting undefined for the mock.results instead of 'Hello world'.

What am I doing wrong? I feel like I'm overlooking something very simple.

like image 814
Aleksandr Chernov Avatar asked Sep 19 '25 14:09

Aleksandr Chernov


1 Answers

You are trying to mock a function that you want to test. You should only mock other dependencies.

This is sufficient:

expect(hello('world')).toBe('Hello world')
like image 54
Alexander Avatar answered Sep 21 '25 03:09

Alexander