From 9c1a3fe390d1c6da6e2014cda5f02c5dedef2e73 Mon Sep 17 00:00:00 2001 From: Matt Dale <9760375+matthewdale@users.noreply.github.com> Date: Wed, 19 Mar 2025 20:15:42 -0700 Subject: [PATCH 1/2] Fix panic in TestCollection/insert_many when nothing is inserted. --- internal/integration/collection_test.go | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/internal/integration/collection_test.go b/internal/integration/collection_test.go index deb9b0f7ba..82db877fa2 100644 --- a/internal/integration/collection_test.go +++ b/internal/integration/collection_test.go @@ -231,18 +231,30 @@ func TestCollection(t *testing.T) { mt.Run(tc.name, func(mt *mtest.T) { res, err := mt.Coll.InsertMany(context.Background(), docs, options.InsertMany().SetOrdered(tc.ordered)) - assert.Equal(mt, tc.numInserted, len(res.InsertedIDs), "expected %v inserted IDs, got %v", tc.numInserted, len(res.InsertedIDs)) - assert.Equal(mt, id, res.InsertedIDs[0], "expected inserted ID %v, got %v", id, res.InsertedIDs[0]) - if tc.numInserted > 1 { - assert.NotNil(mt, res.InsertedIDs[1], "expected ID but got nil") - } - we, ok := err.(mongo.BulkWriteException) assert.True(mt, ok, "expected error type %T, got %T", mongo.BulkWriteException{}, err) numErrors := len(we.WriteErrors) assert.Equal(mt, tc.numErrors, numErrors, "expected %v write errors, got %v", tc.numErrors, numErrors) gotCode := we.WriteErrors[0].Code assert.Equal(mt, errorDuplicateKey, gotCode, "expected error code %v, got %v", errorDuplicateKey, gotCode) + + if len(res.InsertedIDs) == 0 { + mt.Fatal("Expected at least one inserted ID") + } + + assert.Equal(mt, + tc.numInserted, + len(res.InsertedIDs), + "expected %v inserted IDs, got %v", + tc.numInserted, + len(res.InsertedIDs)) + assert.Equal(mt, + id, + res.InsertedIDs[0], + "expected ID to match") + if tc.numInserted > 1 { + assert.NotNil(mt, res.InsertedIDs[1], "expected ID but got nil") + } }) } }) From f6faa1e223864af457a3f9d84b7c9a34a0f0eb56 Mon Sep 17 00:00:00 2001 From: Matt Dale <9760375+matthewdale@users.noreply.github.com> Date: Wed, 26 Mar 2025 20:37:52 -0700 Subject: [PATCH 2/2] Use require.Greater instead of an if. --- internal/integration/collection_test.go | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/internal/integration/collection_test.go b/internal/integration/collection_test.go index 82db877fa2..ae52fba3c3 100644 --- a/internal/integration/collection_test.go +++ b/internal/integration/collection_test.go @@ -15,6 +15,7 @@ import ( "go.mongodb.org/mongo-driver/v2/event" "go.mongodb.org/mongo-driver/v2/internal/assert" "go.mongodb.org/mongo-driver/v2/internal/integration/mtest" + "go.mongodb.org/mongo-driver/v2/internal/require" "go.mongodb.org/mongo-driver/v2/mongo" "go.mongodb.org/mongo-driver/v2/mongo/options" "go.mongodb.org/mongo-driver/v2/mongo/writeconcern" @@ -238,10 +239,7 @@ func TestCollection(t *testing.T) { gotCode := we.WriteErrors[0].Code assert.Equal(mt, errorDuplicateKey, gotCode, "expected error code %v, got %v", errorDuplicateKey, gotCode) - if len(res.InsertedIDs) == 0 { - mt.Fatal("Expected at least one inserted ID") - } - + require.Greater(mt, len(res.InsertedIDs), 0, "expected at least one inserted ID") assert.Equal(mt, tc.numInserted, len(res.InsertedIDs),