环回多层过滤器可在服务器中使用,但仅在超级测试中返回顶级

时间:2019-02-15 18:34:41

标签: javascript node.js loopbackjs supertest

我有一个多级回送包含过滤器,该过滤器在运行中的服务器上运行良好,但仅在测试中运行时(通过supertest(server))才返回顶级查询信息。

过滤器类似于以下内容:

{
  where: {type: 'type name'}
  include: {
    relation: 'subTypes',
    scope: {
      fields: ['id', 'subType'],
      include: {
        relation: 'templates', 
        scope: {
          fields: ['id', 'template']
        }
      }
    }
  }
}

并且可以在运行中的服务器上正常运行,并提供所有级别的详细信息:

{
  "id": 1,
  "type": "type name",
  "subTypes": [
    { 
      "id": 1,
      "subType": "subType name 1",
      "type_fk": 1,
      "templates": [
        {
          "id": 1,
          "template": "templateName",
          "subType_fk": 1
        }
      ]
    },
    {
      "id": 2,
      "subType": "subType name 2",
      "type_fk": 1,
      "templates": []
    }
  ]
}

但是当由超级测试request.post(...)触发时,会导致测试失败,因为查找仅返回有关'类型'的顶级信息:

{
  "id": 1,
  "type": "type name",
  "subTypes": []
}

如果我将测试指向内存连接器和实际的Oracle数据源,则会同时发生这种情况。

我想我可以在表中将发现分解为多个发现,但这似乎并不是最好的方法,特别是因为这只是迫使我沿着那条路走的测试。

任何想法/建议都将受到感激。

0 个答案:

没有答案