Skip to content

Commit 1663fbf

Browse files
authored
Merge pull request #1991 from matthewdale/fix-test-coll-panic
Fix panic in TestCollection/insert_many when nothing is inserted.
2 parents 21e96b6 + f6faa1e commit 1663fbf

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

internal/integration/collection_test.go

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)