[MM-14381] Fix brittle MFA Login Successful Test (#10565)

* Fix brittle MFA Login Successful Test

* Fix 2FA Conversion issue

Co-Authored-By: DSchalla <daniel@schalla.me>

* Unify naming
Этот коммит содержится в:
Daniel Schalla
2019-04-15 18:40:14 +02:00
коммит произвёл GitHub
родитель 47c527ec2a
Коммит 957ec1388b

Просмотреть файл

@@ -4,6 +4,7 @@
package api4
import (
"fmt"
"net/http"
"strconv"
"strings"
@@ -2030,24 +2031,24 @@ func TestUserLoginMFAFlow(t *testing.T) {
*c.ServiceSettings.EnableMultifactorAuthentication = true
})
secret, err := th.App.GenerateMfaSecret(th.BasicUser.Id)
assert.Nil(t, err)
t.Run("WithoutMFA", func(t *testing.T) {
_, resp := th.Client.Login(th.BasicUser.Email, th.BasicUser.Password)
CheckNoError(t, resp)
})
// Fake user has MFA enabled
if result := <-th.Server.Store.User().UpdateMfaActive(th.BasicUser.Id, true); result.Err != nil {
t.Fatal(result.Err)
}
if result := <-th.Server.Store.User().UpdateMfaSecret(th.BasicUser.Id, secret.Secret); result.Err != nil {
t.Fatal(result.Err)
}
t.Run("WithInvalidMFA", func(t *testing.T) {
secret, err := th.App.GenerateMfaSecret(th.BasicUser.Id)
assert.Nil(t, err)
// Fake user has MFA enabled
if result := <-th.Server.Store.User().UpdateMfaActive(th.BasicUser.Id, true); result.Err != nil {
t.Fatal(result.Err)
}
if result := <-th.Server.Store.User().UpdateMfaSecret(th.BasicUser.Id, secret.Secret); result.Err != nil {
t.Fatal(result.Err)
}
user, resp := th.Client.Login(th.BasicUser.Email, th.BasicUser.Password)
CheckErrorMessage(t, resp, "mfa.validate_token.authenticate.app_error")
assert.Nil(t, user)
@@ -2068,10 +2069,21 @@ func TestUserLoginMFAFlow(t *testing.T) {
})
t.Run("WithCorrectMFA", func(t *testing.T) {
t.Skip("Skipping test that fails randomly.")
secret, err := th.App.GenerateMfaSecret(th.BasicUser.Id)
assert.Nil(t, err)
// Fake user has MFA enabled
if result := <-th.Server.Store.User().UpdateMfaActive(th.BasicUser.Id, true); result.Err != nil {
t.Fatal(result.Err)
}
if result := <-th.Server.Store.User().UpdateMfaSecret(th.BasicUser.Id, secret.Secret); result.Err != nil {
t.Fatal(result.Err)
}
code := dgoogauth.ComputeCode(secret.Secret, time.Now().UTC().Unix()/30)
user, resp := th.Client.LoginWithMFA(th.BasicUser.Email, th.BasicUser.Password, strconv.Itoa(code))
user, resp := th.Client.LoginWithMFA(th.BasicUser.Email, th.BasicUser.Password, fmt.Sprintf("%06d", code))
CheckNoError(t, resp)
assert.NotNil(t, user)
})