description: "bulkWrite-errorResponse"

schemaVersion: "1.12"

createEntities:
  - client:
      id: &client0 client0
      useMultipleMongoses: false
  - database:
      id: &database0 database0
      client: *client0
      databaseName: &database0Name crud-tests
  - collection:
      id: &collection0 collection0
      database: *database0
      collectionName: &collection0Name test

tests:
  # This test intentionally executes only a single insert operation in the bulk
  # write to make the error code and response assertions less ambiguous. That
  # said, some drivers may still need to skip this test because the CRUD spec
  # does not prescribe how drivers should formulate a BulkWriteException beyond
  # collecting write and write concern errors.
  - description: "bulkWrite operations support errorResponse assertions"
    runOnRequirements:
      - minServerVersion: "4.0.0"
        topologies: [ single, replicaset ]
      - minServerVersion: "4.2.0"
        topologies: [ sharded ]
    operations:
      - name: failPoint
        object: testRunner
        arguments:
          client: *client0
          failPoint:
            configureFailPoint: failCommand
            mode: { times: 1 }
            data:
              failCommands: [ insert ]
              errorCode: &errorCode 8 # UnknownError
      - name: bulkWrite
        object: *collection0
        arguments:
          requests:
            - insertOne:
                document: { _id: 1 }
        expectError:
          errorCode: *errorCode
          errorResponse:
            code: *errorCode
