1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
package webauthn
import (
"encoding/json"
"testing"
"github.com/go-webauthn/webauthn/protocol"
"github.com/stretchr/testify/assert"
)
func TestRegistration_FinishRegistrationFailure(t *testing.T) {
user := &defaultUser{
id: []byte("123"),
}
session := SessionData{
UserID: []byte("ABC"),
}
webauthn := &WebAuthn{}
credential, err := webauthn.FinishRegistration(user, session, nil)
if err == nil {
t.Errorf("FinishRegistration() error = nil, want %v", protocol.ErrBadRequest.Type)
}
if credential != nil {
t.Errorf("FinishRegistration() credential = %v, want nil", credential)
}
}
func TestEntityEncoding(t *testing.T) {
testCases := []struct {
name string
b64 bool
have, expected string
}{
{"ShouldEncodeBase64", true, "abc", `{"name":"","displayName":"","id":"YWJj"}`},
{"ShouldEncodeString", false, "abc", `{"name":"","displayName":"","id":"abc"}`},
}
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {
entityUser := protocol.UserEntity{}
if tc.b64 {
entityUser.ID = protocol.URLEncodedBase64(tc.have)
} else {
entityUser.ID = tc.have
}
data, err := json.Marshal(entityUser)
assert.NoError(t, err)
assert.Equal(t, tc.expected, string(data))
})
}
}
|