description: "findOneAndUpdate-errorResponse" schemaVersion: "1.12" createEntities: - client: id: &client0 client0 - database: id: &database0 database0 client: *client0 databaseName: &database0Name crud-tests - collection: id: &collection0 collection0 database: *database0 collectionName: &collection0Name test initialData: &initialData - collectionName: *collection0Name databaseName: *database0Name documents: - { _id: 1, x: "foo" } tests: - description: "findOneAndUpdate DuplicateKey error is accessible" runOnRequirements: - minServerVersion: "4.2" # SERVER-37124 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 # DuplicateKey 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: *collection0Name validator: x: { $type: "string" } - name: findOneAndUpdate object: *collection0 arguments: filter: { _id: 1 } update: { $set: { x: 1 } } expectError: errorCode: 121 # DocumentValidationFailure errorResponse: # Avoid asserting the exact contents of errInfo as it may vary by # server version. Likewise, this is why drivers do not model the # document. The following is sufficient to test that validation # details are accessible. See SERVER-20547 for more context. errInfo: failingDocumentId: 1 details: { $$type: "object" }