title: Error when testing fetch in vanilla JavaScript with jest-fetch-mock
body: <p>I'm trying to test a fetch from a class. I need to create a class instance to access the fetch method.
  If I eliminate the class and return directly, the method works.</p>
  
  <p>I tried to do the test this way, but it returns undefined. Any solution?</p>
  
  <p>Thank you very much</p>
  
  <pre><code>//api.test.js
  //import the class Request and module jest-fetch-mock
  import Request from './index'
  global.fetch = require('jest-fetch-mock')
  
  describe('testing api', () =&gt; {
    beforeEach(() =&gt; {
      fetch.resetMocks()
    })
  
    it('calls api and returns data to me', async () =&gt; {
      const request = new Request('http://localhost:3000/api.json')
      fetch.mockResponseOnce(JSON.stringify({data: '12345'}))
  
      // assert on the response
      const res = request.getSections()
      expect(res.data).toEqual('12345')
  
  
      // assert on the times called and arguments given to fetch
      expect(fetch.mock.calls.length).toEqual(1)
      expect(fetch.mock.calls[0][0]).toEqual('http://localhost:3000/api.json')
    })
  })
  
  //api.js
  /**
  * Request Component
  * @class Request
  */
  class Request {
  /**
  * Creates an instance of Request
  *
  * @param {String}  url - The url of the API
  * @throws {Error} - Incorrect type
  * @memberof Request
  */
    constructor(url) {
       if (typeof url !== 'string') throw TypeError(`${url} is not a string`)
       this.url = url
    }
  
    /**
    * Handler get sections from api
    * @memberof Request
    */
    getSections() {
       return fetch(this.url)// eslint-disable-line
         .then(res =&gt; res.json())
         .then(result =&gt; result.sections)
         .catch(err =&gt; console.error(err)) // eslint-disable-line
    }
  }
  
  export default Request
  </code></pre>
  
  <p>I received:</p>
  
  <pre><code>expect(received).toEqual(expected)
  
  Expected value to equal:
    "12345"
  Received:
    undefined
  
  Difference:
  
    Comparing two different types of values. Expected string but received undefined.
  
    14 |     // assert on the response
    15 |     const res = request.getSections()
  &gt; 16 |     expect(res.data).toEqual('12345')
       |                      ^
    17 |
    18 |
    19 |     // assert on the times called and arguments given to fetch
  </code></pre>
  
  <p>Res is undefined too. I'm doing something wrong, but I don't know what it is.</p>