Skip to content

Commit

Permalink
use require in test for not panicing when adding new backend
Browse files Browse the repository at this point in the history
  • Loading branch information
chilagrow committed Mar 6, 2024
1 parent 3134785 commit 5801476
Showing 1 changed file with 20 additions and 11 deletions.
31 changes: 20 additions & 11 deletions integration/commands_authentication_test.go
Expand Up @@ -17,7 +17,6 @@ package integration
import (
"testing"

"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
"go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/mongo"
Expand Down Expand Up @@ -64,10 +63,15 @@ func TestCommandsAuthenticationLogout(t *testing.T) {

var res bson.D
err = db.RunCommand(ctx, bson.D{{"connectionStatus", 1}}).Decode(&res)
assert.NoError(t, err)
require.NoError(t, err)

actualAuth := must.NotFail(ConvertDocument(t, res).Get("authInfo")).(*types.Document)
actualUsers := must.NotFail(actualAuth.Get("authenticatedUsers")).(*types.Array)
actualAuth, _ := ConvertDocument(t, res).Get("authInfo")
require.NotNil(t, actualAuth)

actualUsersV, _ := actualAuth.(*types.Document).Get("authenticatedUsers")
require.NotNil(t, actualUsersV)

actualUsers := actualUsersV.(*types.Array)

var hasUser bool

Expand All @@ -79,10 +83,10 @@ func TestCommandsAuthenticationLogout(t *testing.T) {
}
}

assert.True(t, hasUser, res)
require.True(t, hasUser, res)

err = db.RunCommand(ctx, bson.D{{"logout", 1}}).Decode(&res)
assert.NoError(t, err)
require.NoError(t, err)

actual := ConvertDocument(t, res)
actual.Remove("$clusterTime")
Expand All @@ -92,19 +96,24 @@ func TestCommandsAuthenticationLogout(t *testing.T) {
testutil.AssertEqual(t, expected, actual)

err = db.RunCommand(ctx, bson.D{{"connectionStatus", 1}}).Decode(&res)
assert.NoError(t, err)
require.NoError(t, err)

actualAuth, _ = ConvertDocument(t, res).Get("authInfo")
require.NotNil(t, actualAuth)

actualUsersV, _ = actualAuth.(*types.Document).Get("authenticatedUsers")
require.NotNil(t, actualUsersV)

actualAuth = must.NotFail(ConvertDocument(t, res).Get("authInfo")).(*types.Document)
actualUsers = must.NotFail(actualAuth.Get("authenticatedUsers")).(*types.Array)
actualUsers = actualUsersV.(*types.Array)

for i := 0; i < actualUsers.Len(); i++ {
actualUser := must.NotFail(must.NotFail(actualUsers.Get(i)).(*types.Document).Get("user"))
if actualUser == username {
assert.Fail(t, "user is still authenticated", res)
require.Fail(t, "user is still authenticated", res)
}
}

// the test user logs out again, it has no effect
err = db.RunCommand(ctx, bson.D{{"logout", 1}}).Err()
assert.NoError(t, err)
require.NoError(t, err)
}

0 comments on commit 5801476

Please sign in to comment.