description: "updateSearchIndex"
schemaVersion: "1.4"
createEntities:
  - client:
      id: &client0 client0
      useMultipleMongoses: false
      observeEvents:
        - commandStartedEvent
  - database:
      id: &database0 database0
      client: *client0
      databaseName: *database0
  - collection:
      id: &collection0 collection0
      database: *database0
      collectionName: *collection0

runOnRequirements:
  - minServerVersion: "7.0.0"
    topologies: [ replicaset, load-balanced, sharded ]
    serverless: forbid

tests:
  - description: "sends the correct command"
    operations:
      - name: updateSearchIndex
        object: *collection0
        arguments:
          name: &indexName 'test index'
          definition: &definition {}
        expectError:
          # This test always errors in a non-Atlas environment.  The test functions as a unit test  by asserting
          # that the driver constructs and sends the correct command.
          # The expected error message was changed in SERVER-83003. Check for the substring "Atlas" shared by both error messages.
          isError: true
          errorContains: Atlas
    expectEvents:
      - client: *client0
        events:
          - commandStartedEvent:
              command:
                updateSearchIndex: *collection0
                name: *indexName
                definition: *definition
                $db: *database0