笑话存根不会更改假存储库的状态

时间:2020-10-08 16:07:28

标签: typescript jestjs stub

我正在尝试存根我的存储库。

我的数据库被字符串数组伪造了。

我希望在我的代码调用repository.saveJobOfferIntoBookmarks时用一个新条目填充该数组,但是似乎什么也没发生。

使用此代码更加清楚。

describe('saveJobOfferIntoBookmarks', () => {
    it('should save given job offer into bookmarks', async () => {
      let fakeAllBookmarks = ['Sales associate', 'Crew member', 'Barista']
      const jobOfferToBeSaved = { id: 2, job: 'Captain' }

      repository.saveJobOfferIntoBookmarks = jest.fn(jobOfferId => {
        console.log(jobOfferId)
        if (jobOfferId === jobOfferToBeSaved.id)
          fakeAllBookmarks.push(jobOfferToBeSaved.job)
        return Promise.resolve(2)
      })

      console.log(fakeAllBookmarks)
      repository.getAllBookmarkedJobOffers = jest.fn(() => {
        return Promise.resolve(fakeAllBookmarks)
      })

      const candidateId = 614
      const jobOfferId = 2
      const retrievedBookmarks = await service.getAllBookmarkedJobOffers(
        candidateId
      )
      console.log(retrievedBookmarks)
      expect(retrievedBookmarks).toStrictEqual([
        'Sales associate',
        'Crew member',
        'Barista',
        'Captain',
      ])
      expect(repository.saveJobOfferIntoBookmarks).toHaveBeenCalledWith(
        candidateId,
        jobOfferId
      )
    })
  })

这是控制台测试结果:

● BookmarksService › saveJobOfferIntoBookmarks › should save given job offer into bookmarks

    expect(received).toStrictEqual(expected) // deep equality

    - Expected  - 1
    + Received  + 0

      Array [
        "Sales associate",
        "Crew member",
        "Barista",
    -   "Captain",
      ]

      65 |       )
      66 |       console.log(retrievedBookmarks)
    > 67 |       expect(retrievedBookmarks).toStrictEqual([
         |                                  ^
      68 |         'Sales associate',
      69 |         'Crew member',
      70 |         'Barista',

      at Object.<anonymous> (bookmarks/bookmarks.service.spec.ts:67:34)

  console.log
    [ 'Sales associate', 'Crew member', 'Barista' ]

      at Object.<anonymous> (bookmarks/bookmarks.service.spec.ts:56:15)

  console.log
    [ 'Sales associate', 'Crew member', 'Barista' ]

      at Object.<anonymous> (bookmarks/bookmarks.service.spec.ts:66:15)

存根中的console.log()似乎也没有被触发。

0 个答案:

没有答案