首页 > 解决方案 > 如何忽略某些域作为 nock.back 的记录?

问题描述

我在我的项目中使用 nock.back 作为 mocha 测试的一部分。

即使我有 setup nock.enableNetConnect, nock.back 仍然记录对域的呼出。

const nock = require('nock')
const path = require('path')

nock.back.fixtures = path.join(__dirname, 'fixtures')

// use recorded nocks, and record new nocks - don't remove
nock.back.setMode('record')
nock.enableNetConnect(/(vault|localhost|schema-registry)/)
const noBodyMatching = scope => {
  scope.filteringRequestBody = (_body, recordedBody) => recordedBody
  nock.enableNetConnect(/(vault|localhost|schema-registry)/)
}

const defaultOptions = {
  before: noBodyMatching
}

const nockBack = (fixture, options) => {
  let nockDone
  beforeEach(async function() {
    //  eslint-disable-next-line
    ;({ nockDone } = await nock.back(fixture, {
      ...defaultOptions,
      ...options
    }))
  })

  afterEach(function() {
    nockDone()
  })
}

module.exports = {
  nockBack,
  defaultOptions
}

我仍然收到如下错误:

No match for request {\n  \"method\": \"GET\",\n  \"url\": \"http://schema-registry:3000/find-schema-by-routing-key/event.serviceability.offers.retry.queued\"

查看一些现有/关闭的问题,我发现以下但没有任何运气: https ://github.com/nock/nock/issues/484#issuecomment-191822034

有人知道如何让 nock.back 忽略某些域吗?或者这是不可能的?

标签: node.jsnock

解决方案


推荐阅读