description: "createSearchIndexes" 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: "empty index definition array" operations: - name: createSearchIndexes object: *collection0 arguments: models: [] 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: createSearchIndexes: *collection0 indexes: [] $db: *database0 - description: "no name provided for an index definition" operations: - name: createSearchIndexes object: *collection0 arguments: models: [ { definition: &definition { mappings: { dynamic: true } } } ] 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: createSearchIndexes: *collection0 indexes: [ { definition: *definition } ] $db: *database0 - description: "name provided for an index definition" operations: - name: createSearchIndexes object: *collection0 arguments: models: [ { definition: &definition { mappings: { dynamic: true } } , name: 'test index' } ] 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: createSearchIndexes: *collection0 indexes: [ { definition: *definition, name: 'test index' } ] $db: *database0