97 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| description: "findOneAndUpdate-let"
 | |
| 
 | |
| schemaVersion: "1.0"
 | |
| 
 | |
| createEntities:
 | |
|   - client:
 | |
|       id: &client0 client0
 | |
|       observeEvents: [ commandStartedEvent ]
 | |
|   - database:
 | |
|       id: &database0 database0
 | |
|       client: *client0
 | |
|       databaseName: &database0Name crud-tests
 | |
|   - collection:
 | |
|       id: &collection0 collection0
 | |
|       database: *database0
 | |
|       collectionName: &collection0Name coll0
 | |
| 
 | |
| initialData: &initialData
 | |
|   - collectionName: *collection0Name
 | |
|     databaseName: *database0Name
 | |
|     documents:
 | |
|       - { _id: 1 }
 | |
|       - { _id: 2 }
 | |
| 
 | |
| tests:
 | |
|   - description: "findOneAndUpdate with let option"
 | |
|     runOnRequirements:
 | |
|       - minServerVersion: "5.0"
 | |
|     operations:
 | |
|       - name: findOneAndUpdate
 | |
|         object: *collection0
 | |
|         arguments:
 | |
|           filter: &filter
 | |
|             $expr:
 | |
|               $eq: [ "$_id", "$$id" ]
 | |
|           update: &update
 | |
|             - $set: {x: "$$x" }
 | |
|           let: &let0
 | |
|             id: 1
 | |
|             x: "foo"
 | |
|         expectResult:
 | |
|           _id: 1
 | |
|     expectEvents:
 | |
|       - client: *client0
 | |
|         events:
 | |
|           - commandStartedEvent:
 | |
|               command:
 | |
|                 findAndModify: *collection0Name
 | |
|                 query: *filter
 | |
|                 update: *update
 | |
|                 let: *let0
 | |
|     outcome:
 | |
|       -
 | |
|         collectionName: *collection0Name
 | |
|         databaseName: *database0Name
 | |
|         documents:
 | |
|           - { _id: 1, x: "foo" }
 | |
|           - { _id: 2 }
 | |
| 
 | |
|   - description: "findOneAndUpdate with let option unsupported (server-side error)"
 | |
|     runOnRequirements:
 | |
|       - minServerVersion: "4.2.0"
 | |
|         maxServerVersion: "4.4.99"
 | |
|     operations:
 | |
|       - name: findOneAndUpdate
 | |
|         object: *collection0
 | |
|         arguments:
 | |
|           filter: &filter1
 | |
|             $expr:
 | |
|               $eq: [ "$_id", "$$id" ]
 | |
|           update: &update1
 | |
|             - $set: {x: "$$x"}
 | |
|           let: &let1
 | |
|             id: 1
 | |
|             x: "foo"
 | |
|         expectError:
 | |
|           # This error message is consistent between 4.2.x and 4.4.x servers.
 | |
|           # Older servers return a different error message.
 | |
|           errorContains: "field 'let' is an unknown field"
 | |
|           isClientError: false
 | |
|     expectEvents:
 | |
|       - client: *client0
 | |
|         events:
 | |
|           - commandStartedEvent:
 | |
|               command:
 | |
|                 findAndModify: *collection0Name
 | |
|                 query: *filter1
 | |
|                 update: *update1
 | |
|                 let: *let1
 | |
|     outcome:
 | |
|       -
 | |
|         collectionName: *collection0Name
 | |
|         databaseName: *database0Name
 | |
|         documents:
 | |
|           - { _id: 1 }
 | |
|           - { _id: 2 }
 |