2022-08-02 08:42:36 +00:00
|
|
|
package test
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/authorizerdev/authorizer/server/constants"
|
|
|
|
"github.com/authorizerdev/authorizer/server/db"
|
|
|
|
"github.com/authorizerdev/authorizer/server/db/models"
|
|
|
|
"github.com/authorizerdev/authorizer/server/graph/model"
|
|
|
|
"github.com/authorizerdev/authorizer/server/refs"
|
|
|
|
"github.com/authorizerdev/authorizer/server/utils"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
)
|
|
|
|
|
|
|
|
func updateAllUsersTest(t *testing.T, s TestSetup) {
|
|
|
|
t.Helper()
|
|
|
|
t.Run("Should update all users", func(t *testing.T) {
|
|
|
|
_, ctx := createContext(s)
|
|
|
|
for i := 0; i < 10; i++ {
|
2023-07-31 11:12:11 +00:00
|
|
|
user := &models.User{
|
2023-10-25 19:25:10 +00:00
|
|
|
Email: refs.NewStringRef(fmt.Sprintf("update_all_user_%d_%s", i, s.TestInfo.Email)),
|
2022-08-02 08:42:36 +00:00
|
|
|
SignupMethods: constants.AuthRecipeMethodBasicAuth,
|
|
|
|
Roles: "user",
|
|
|
|
}
|
|
|
|
u, err := db.Provider.AddUser(ctx, user)
|
|
|
|
assert.NoError(t, err)
|
|
|
|
assert.NotNil(t, u)
|
|
|
|
}
|
|
|
|
|
|
|
|
err := db.Provider.UpdateUsers(ctx, map[string]interface{}{
|
|
|
|
"is_multi_factor_auth_enabled": true,
|
|
|
|
}, nil)
|
|
|
|
assert.NoError(t, err)
|
|
|
|
|
2023-07-31 11:12:11 +00:00
|
|
|
listUsers, err := db.Provider.ListUsers(ctx, &model.Pagination{
|
2022-08-02 08:42:36 +00:00
|
|
|
Limit: 20,
|
|
|
|
Offset: 0,
|
|
|
|
})
|
|
|
|
assert.NoError(t, err)
|
2023-11-16 13:00:54 +00:00
|
|
|
assert.Greater(t, len(listUsers.Users), 0)
|
2022-08-02 08:42:36 +00:00
|
|
|
for _, u := range listUsers.Users {
|
|
|
|
assert.True(t, refs.BoolValue(u.IsMultiFactorAuthEnabled))
|
|
|
|
}
|
|
|
|
// // update few users
|
|
|
|
updateIds := []string{listUsers.Users[0].ID, listUsers.Users[1].ID}
|
|
|
|
err = db.Provider.UpdateUsers(ctx, map[string]interface{}{
|
|
|
|
"is_multi_factor_auth_enabled": false,
|
|
|
|
}, updateIds)
|
|
|
|
assert.NoError(t, err)
|
2023-07-31 11:12:11 +00:00
|
|
|
listUsers, err = db.Provider.ListUsers(ctx, &model.Pagination{
|
2022-08-02 08:42:36 +00:00
|
|
|
Limit: 20,
|
|
|
|
Offset: 0,
|
|
|
|
})
|
2023-03-29 01:36:33 +00:00
|
|
|
assert.NoError(t, err)
|
|
|
|
assert.NotNil(t, listUsers)
|
2023-11-16 13:00:54 +00:00
|
|
|
assert.Greater(t, len(listUsers.Users), 0)
|
2022-08-02 08:42:36 +00:00
|
|
|
for _, u := range listUsers.Users {
|
|
|
|
if utils.StringSliceContains(updateIds, u.ID) {
|
|
|
|
assert.False(t, refs.BoolValue(u.IsMultiFactorAuthEnabled))
|
|
|
|
} else {
|
|
|
|
assert.True(t, refs.BoolValue(u.IsMultiFactorAuthEnabled))
|
|
|
|
}
|
2023-10-25 19:25:10 +00:00
|
|
|
cleanData(refs.StringValue(u.Email))
|
2022-08-02 08:42:36 +00:00
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|