@@ -15,6 +15,7 @@ import (
1515 "go.mongodb.org/mongo-driver/v2/event"
1616 "go.mongodb.org/mongo-driver/v2/internal/assert"
1717 "go.mongodb.org/mongo-driver/v2/internal/integration/mtest"
18+ "go.mongodb.org/mongo-driver/v2/internal/require"
1819 "go.mongodb.org/mongo-driver/v2/mongo"
1920 "go.mongodb.org/mongo-driver/v2/mongo/options"
2021 "go.mongodb.org/mongo-driver/v2/mongo/writeconcern"
@@ -231,18 +232,27 @@ func TestCollection(t *testing.T) {
231232 mt .Run (tc .name , func (mt * mtest.T ) {
232233 res , err := mt .Coll .InsertMany (context .Background (), docs , options .InsertMany ().SetOrdered (tc .ordered ))
233234
234- assert .Equal (mt , tc .numInserted , len (res .InsertedIDs ), "expected %v inserted IDs, got %v" , tc .numInserted , len (res .InsertedIDs ))
235- assert .Equal (mt , id , res .InsertedIDs [0 ], "expected inserted ID %v, got %v" , id , res .InsertedIDs [0 ])
236- if tc .numInserted > 1 {
237- assert .NotNil (mt , res .InsertedIDs [1 ], "expected ID but got nil" )
238- }
239-
240235 we , ok := err .(mongo.BulkWriteException )
241236 assert .True (mt , ok , "expected error type %T, got %T" , mongo.BulkWriteException {}, err )
242237 numErrors := len (we .WriteErrors )
243238 assert .Equal (mt , tc .numErrors , numErrors , "expected %v write errors, got %v" , tc .numErrors , numErrors )
244239 gotCode := we .WriteErrors [0 ].Code
245240 assert .Equal (mt , errorDuplicateKey , gotCode , "expected error code %v, got %v" , errorDuplicateKey , gotCode )
241+
242+ require .Greater (mt , len (res .InsertedIDs ), 0 , "expected at least one inserted ID" )
243+ assert .Equal (mt ,
244+ tc .numInserted ,
245+ len (res .InsertedIDs ),
246+ "expected %v inserted IDs, got %v" ,
247+ tc .numInserted ,
248+ len (res .InsertedIDs ))
249+ assert .Equal (mt ,
250+ id ,
251+ res .InsertedIDs [0 ],
252+ "expected ID to match" )
253+ if tc .numInserted > 1 {
254+ assert .NotNil (mt , res .InsertedIDs [1 ], "expected ID but got nil" )
255+ }
246256 })
247257 }
248258 })
0 commit comments