Cypress graphql apollo 调用没有给出结果并自动重试

Cypress graphql apollo call gives no result and retries automatically

问题是,我没有模拟,而是得到了一个带有未解决查询的加载屏幕,Cypress 多次尝试再次重新查询它,并且没有错误消息。

我正在使用 Quasar 测试工具中的 Cypress。我想模拟 graphql 通话。

在我的组件中,我有一个 apollo 查询:

apollo: {
  assetsOverview: {
    query: ASSETS_OVERVIEW,
    loadingKey: 'loading'
  }
}

为此,我以这种方式使用固定装置:

cy.intercept('POST', api, req => {
  if (req.body.operationName === 'getAssetOverview') {
    // This condition works just fine
    req.reply({
      fixture: 'asset-table.json'
    })
  }
})

我的夹具如下所示:

{ 
  "assetsOverview": {
    "assetMetrics": [
      {
        "assetId": "todo-conveyor",
        "assetName": "Conveyor belts",
        "childAssetIds": null,
        "oeeMetrics": {
          "availability": null,
          "oee": null,
          "performance": null,
          "quality": null,
          "__typename": "AssetOeeMetrics"
        },
        "stateMetrics": {
          "blocked": null,
          "failed": null,
          "idle": null,
          "running": null,
          "stopped": null,
          "__typename": "AssetStateMetrics"
        },
        "__typename": "AssetMetrics"
      }
    ],
    "__typename": "AssetMetricsOverview"
  }
}

发现我必须将我的固定对象包装在 data 内。

像这样:

{
  "data": {
    "assetsOverview": {
      "assetMetrics": [
        ...
      ]
    }
  }
}