{
    "description": "findOneAndUpdate-errorResponse",
    "schemaVersion": "1.12",
    "createEntities": [
      {
        "client": {
          "id": "client0"
        }
      },
      {
        "database": {
          "id": "database0",
          "client": "client0",
          "databaseName": "crud-tests"
        }
      },
      {
        "collection": {
          "id": "collection0",
          "database": "database0",
          "collectionName": "test"
        }
      }
    ],
    "initialData": [
      {
        "collectionName": "test",
        "databaseName": "crud-tests",
        "documents": [
          {
            "_id": 1,
            "x": "foo"
          }
        ]
      }
    ],
    "tests": [
      {
        "description": "findOneAndUpdate DuplicateKey error is accessible",
        "runOnRequirements": [
          {
            "minServerVersion": "4.2"
          }
        ],
        "operations": [
          {
            "name": "createIndex",
            "object": "collection0",
            "arguments": {
              "keys": {
                "x": 1
              },
              "unique": true
            }
          },
          {
            "name": "findOneAndUpdate",
            "object": "collection0",
            "arguments": {
              "filter": {
                "_id": 2
              },
              "update": {
                "$set": {
                  "x": "foo"
                }
              },
              "upsert": true
            },
            "expectError": {
              "errorCode": 11000,
              "errorResponse": {
                "keyPattern": {
                  "x": 1
                },
                "keyValue": {
                  "x": "foo"
                }
              }
            }
          }
        ]
      },
      {
        "description": "findOneAndUpdate document validation errInfo is accessible",
        "runOnRequirements": [
          {
            "minServerVersion": "5.0"
          }
        ],
        "operations": [
          {
            "name": "modifyCollection",
            "object": "database0",
            "arguments": {
              "collection": "test",
              "validator": {
                "x": {
                  "$type": "string"
                }
              }
            }
          },
          {
            "name": "findOneAndUpdate",
            "object": "collection0",
            "arguments": {
              "filter": {
                "_id": 1
              },
              "update": {
                "$set": {
                  "x": 1
                }
              }
            },
            "expectError": {
              "errorCode": 121,
              "errorResponse": {
                "errInfo": {
                  "failingDocumentId": 1,
                  "details": {
                    "$$type": "object"
                  }
                }
              }
            }
          }
        ]
      }
    ]
  }
  