54 lines
1.3 KiB
Go
54 lines
1.3 KiB
Go
package rnd
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
|
|
"github.com/pquerna/otp"
|
|
)
|
|
|
|
func TestAuthKey(t *testing.T) {
|
|
t.Run("Success", func(t *testing.T) {
|
|
issuer := "Foo"
|
|
accountName := "Bar Baz"
|
|
result, err := AuthKey(issuer, accountName)
|
|
|
|
assert.NoError(t, err)
|
|
assert.NotNil(t, result)
|
|
// Example String URL:
|
|
// otpauth://totp/Foo:Bar%20Baz?algorithm=SHA1&digits=6&issuer=Foo&period=30&secret=25I6JAIZRNSOPN2WMADP6HX5GTCYTF36
|
|
assert.Len(t, result.String(), 113)
|
|
assert.Equal(t, issuer, result.Issuer())
|
|
assert.Equal(t, accountName, result.AccountName())
|
|
assert.Equal(t, "SHA1", result.Algorithm().String())
|
|
assert.Equal(t, otp.Digits(6), result.Digits())
|
|
assert.Equal(t, uint64(30), result.Period())
|
|
})
|
|
t.Run("EmptyIssuer", func(t *testing.T) {
|
|
issuer := ""
|
|
accountName := "Bar Baz"
|
|
result, err := AuthKey(issuer, accountName)
|
|
|
|
assert.Error(t, err)
|
|
assert.Nil(t, result)
|
|
})
|
|
t.Run("EmptyAccountName", func(t *testing.T) {
|
|
issuer := "foo"
|
|
accountName := ""
|
|
result, err := AuthKey(issuer, accountName)
|
|
|
|
assert.Error(t, err)
|
|
assert.Nil(t, result)
|
|
})
|
|
}
|
|
|
|
func TestRecoveryCode(t *testing.T) {
|
|
t.Run("Success", func(t *testing.T) {
|
|
result := RecoveryCode()
|
|
|
|
t.Logf("Recovery Code: %s", result)
|
|
assert.Len(t, result, 12)
|
|
})
|
|
}
|