bson/testdata/index-management/createSearchIndexes.yml
2025-03-17 20:58:26 +01:00

115 lines
4.5 KiB
YAML

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:
# Skip server versions without fix of SERVER-83107 to avoid error message "BSON field 'createSearchIndexes.indexes.type' is an unknown field."
# SERVER-83107 was not backported to 7.1.
- minServerVersion: "7.0.5"
maxServerVersion: "7.0.99"
topologies: [ replicaset, load-balanced, sharded ]
serverless: forbid
- minServerVersion: "7.2.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 } } , type: 'search' } ]
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, type: 'search'} ]
$db: *database0
- description: "name provided for an index definition"
operations:
- name: createSearchIndexes
object: *collection0
arguments:
models: [ { definition: &definition { mappings: { dynamic: true } } , name: 'test index' , type: 'search' } ]
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', type: 'search' } ]
$db: *database0
- description: "create a vector search index"
operations:
- name: createSearchIndexes
object: *collection0
arguments:
models: [ { definition: &definition { fields: [ {"type": "vector", "path": "plot_embedding", "numDimensions": 1536, "similarity": "euclidean"} ] },
name: 'test index' , type: 'vectorSearch' } ]
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', type: 'vectorSearch' } ]
$db: *database0