Skip to content

Commit cd1fc57

Browse files
committed
add test for forbidden event types
1 parent a3c6f73 commit cd1fc57

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

internal/verifier/change_stream_test.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"testing"
66
"time"
77

8+
"github.com/10gen/migration-verifier/internal/util"
89
"github.com/10gen/migration-verifier/mslices"
910
"github.com/pkg/errors"
1011
"github.com/samber/lo"
@@ -306,3 +307,36 @@ func (suite *IntegrationTestSuite) TestEventBeforeWritesOff() {
306307

307308
suite.Assert().Equal(docsCount, totalFailed, "all source docs should be missing")
308309
}
310+
311+
func (suite *IntegrationTestSuite) TestCreateForbidden() {
312+
ctx := suite.Context()
313+
buildInfo, err := util.GetBuildInfo(ctx, suite.srcMongoClient)
314+
suite.Require().NoError(err)
315+
316+
if buildInfo.VersionArray[0] < 6 {
317+
suite.T().Skipf("This test requires server v6+. (Found: %v)", buildInfo.VersionArray)
318+
}
319+
320+
verifier := suite.BuildVerifier()
321+
322+
// start verifier
323+
verifierRunner := RunVerifierCheck(suite.Context(), suite.T(), verifier)
324+
325+
// wait for generation 0 to end
326+
verifierRunner.AwaitGenerationEnd()
327+
328+
db := suite.srcMongoClient.Database(suite.DBNameForTest())
329+
coll := db.Collection("mycoll")
330+
suite.Require().NoError(
331+
db.CreateCollection(ctx, coll.Name()),
332+
)
333+
334+
suite.Require().NoError(verifier.WritesOff(ctx))
335+
336+
err = verifierRunner.Await()
337+
suite.Require().Error(err, "should detect forbidden create event")
338+
339+
eventErr := UnknownEventError{}
340+
suite.Require().ErrorAs(err, &eventErr)
341+
suite.Assert().Equal("create", eventErr.Event.OpType)
342+
}

0 commit comments

Comments
 (0)