runOn:
  # Server versions >= 3.4.0 will return an error response for unrecognized
  # updateOne options. These tests check that the driver will raise an error
  # if a hint is provided on a server version < 3.4.
  - { maxServerVersion: "3.3.99" }

data:
  - {_id: 1, x: 11}
  - {_id: 2, x: 22}

collection_name: &collection_name 'test_updateone_hint'

tests:
  -
    description: "UpdateOne with hint string unsupported (client-side error)"
    operations:
      -
        object: collection
        name: updateOne
        arguments:
          filter: &filter { _id: { $gt: 1 } }
          update: &update { $inc: { x: 1 } }
          hint: "_id_"
        error: true
    expectations: []
    outcome: &outcome
      collection:
        data:
          - {_id: 1, x: 11 }
          - {_id: 2, x: 22 }
  -
    description: "UpdateOne with hint document unsupported (client-side error)"
    operations:
      -
        object: collection
        name: updateOne
        arguments:
          filter: *filter
          update: *update
          hint: { _id: 1 }
        error: true
    expectations: []
    outcome: *outcome
