2015-06-08 19:39:02 +08:00
|
|
|
package notifications
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
2022-06-28 20:32:25 +08:00
|
|
|
"github.com/grafana/grafana/pkg/services/user"
|
2015-06-08 19:39:02 +08:00
|
|
|
"github.com/grafana/grafana/pkg/setting"
|
2021-10-27 00:08:04 +08:00
|
|
|
|
|
|
|
"github.com/stretchr/testify/require"
|
2015-06-08 19:39:02 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
func TestEmailCodes(t *testing.T) {
|
2021-10-27 00:08:04 +08:00
|
|
|
t.Run("When generating code", func(t *testing.T) {
|
2021-08-25 21:11:22 +08:00
|
|
|
cfg := setting.NewCfg()
|
|
|
|
cfg.EmailCodeValidMinutes = 120
|
2015-06-08 19:39:02 +08:00
|
|
|
|
2022-06-28 20:32:25 +08:00
|
|
|
user := &user.User{ID: 10, Email: "t@a.com", Login: "asd", Password: "1", Rands: "2"}
|
2021-08-25 21:11:22 +08:00
|
|
|
code, err := createUserEmailCode(cfg, user, nil)
|
2021-10-27 00:08:04 +08:00
|
|
|
require.NoError(t, err)
|
2015-06-08 19:39:02 +08:00
|
|
|
|
2021-10-27 00:08:04 +08:00
|
|
|
t.Run("getLoginForCode should return login", func(t *testing.T) {
|
2015-06-08 19:39:02 +08:00
|
|
|
login := getLoginForEmailCode(code)
|
2021-10-27 00:08:04 +08:00
|
|
|
require.Equal(t, login, "asd")
|
2015-06-08 19:39:02 +08:00
|
|
|
})
|
|
|
|
|
2021-10-27 00:08:04 +08:00
|
|
|
t.Run("Can verify valid code", func(t *testing.T) {
|
2021-08-25 21:11:22 +08:00
|
|
|
isValid, err := validateUserEmailCode(cfg, user, code)
|
2021-10-27 00:08:04 +08:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.True(t, isValid)
|
2015-06-08 19:39:02 +08:00
|
|
|
})
|
|
|
|
|
2021-10-27 00:08:04 +08:00
|
|
|
t.Run("Cannot verify in-valid code", func(t *testing.T) {
|
2015-06-08 19:39:02 +08:00
|
|
|
code = "ASD"
|
2021-08-25 21:11:22 +08:00
|
|
|
isValid, err := validateUserEmailCode(cfg, user, code)
|
2021-10-27 00:08:04 +08:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.False(t, isValid)
|
2015-06-08 19:39:02 +08:00
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|