Skip to content

Commit af00bf0

Browse files
committed
add test for forbidden event types
1 parent 9e85e8d commit af00bf0

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"
@@ -319,3 +320,36 @@ func (suite *IntegrationTestSuite) testInsertsBeforeWritesOff(docsCount int) {
319320

320321
suite.Assert().Equal(docsCount, totalFailed, "all source docs should be missing")
321322
}
323+
324+
func (suite *IntegrationTestSuite) TestCreateForbidden() {
325+
ctx := suite.Context()
326+
buildInfo, err := util.GetBuildInfo(ctx, suite.srcMongoClient)
327+
suite.Require().NoError(err)
328+
329+
if buildInfo.VersionArray[0] < 6 {
330+
suite.T().Skipf("This test requires server v6+. (Found: %v)", buildInfo.VersionArray)
331+
}
332+
333+
verifier := suite.BuildVerifier()
334+
335+
// start verifier
336+
verifierRunner := RunVerifierCheck(suite.Context(), suite.T(), verifier)
337+
338+
// wait for generation 0 to end
339+
verifierRunner.AwaitGenerationEnd()
340+
341+
db := suite.srcMongoClient.Database(suite.DBNameForTest())
342+
coll := db.Collection("mycoll")
343+
suite.Require().NoError(
344+
db.CreateCollection(ctx, coll.Name()),
345+
)
346+
347+
suite.Require().NoError(verifier.WritesOff(ctx))
348+
349+
err = verifierRunner.Await()
350+
suite.Require().Error(err, "should detect forbidden create event")
351+
352+
eventErr := UnknownEventError{}
353+
suite.Require().ErrorAs(err, &eventErr)
354+
suite.Assert().Equal("create", eventErr.Event.OpType)
355+
}

0 commit comments

Comments
 (0)