code.gitea.io/gitea@v1.22.3/models/auth/webauthn_test.go (about) 1 // Copyright 2020 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package auth_test 5 6 import ( 7 "testing" 8 9 auth_model "code.gitea.io/gitea/models/auth" 10 "code.gitea.io/gitea/models/db" 11 "code.gitea.io/gitea/models/unittest" 12 13 "github.com/go-webauthn/webauthn/webauthn" 14 "github.com/stretchr/testify/assert" 15 ) 16 17 func TestGetWebAuthnCredentialByID(t *testing.T) { 18 assert.NoError(t, unittest.PrepareTestDatabase()) 19 20 res, err := auth_model.GetWebAuthnCredentialByID(db.DefaultContext, 1) 21 assert.NoError(t, err) 22 assert.Equal(t, "WebAuthn credential", res.Name) 23 24 _, err = auth_model.GetWebAuthnCredentialByID(db.DefaultContext, 342432) 25 assert.Error(t, err) 26 assert.True(t, auth_model.IsErrWebAuthnCredentialNotExist(err)) 27 } 28 29 func TestGetWebAuthnCredentialsByUID(t *testing.T) { 30 assert.NoError(t, unittest.PrepareTestDatabase()) 31 32 res, err := auth_model.GetWebAuthnCredentialsByUID(db.DefaultContext, 32) 33 assert.NoError(t, err) 34 assert.Len(t, res, 1) 35 assert.Equal(t, "WebAuthn credential", res[0].Name) 36 } 37 38 func TestWebAuthnCredential_TableName(t *testing.T) { 39 assert.Equal(t, "webauthn_credential", auth_model.WebAuthnCredential{}.TableName()) 40 } 41 42 func TestWebAuthnCredential_UpdateSignCount(t *testing.T) { 43 assert.NoError(t, unittest.PrepareTestDatabase()) 44 cred := unittest.AssertExistsAndLoadBean(t, &auth_model.WebAuthnCredential{ID: 1}) 45 cred.SignCount = 1 46 assert.NoError(t, cred.UpdateSignCount(db.DefaultContext)) 47 unittest.AssertExistsIf(t, true, &auth_model.WebAuthnCredential{ID: 1, SignCount: 1}) 48 } 49 50 func TestWebAuthnCredential_UpdateLargeCounter(t *testing.T) { 51 assert.NoError(t, unittest.PrepareTestDatabase()) 52 cred := unittest.AssertExistsAndLoadBean(t, &auth_model.WebAuthnCredential{ID: 1}) 53 cred.SignCount = 0xffffffff 54 assert.NoError(t, cred.UpdateSignCount(db.DefaultContext)) 55 unittest.AssertExistsIf(t, true, &auth_model.WebAuthnCredential{ID: 1, SignCount: 0xffffffff}) 56 } 57 58 func TestCreateCredential(t *testing.T) { 59 assert.NoError(t, unittest.PrepareTestDatabase()) 60 61 res, err := auth_model.CreateCredential(db.DefaultContext, 1, "WebAuthn Created Credential", &webauthn.Credential{ID: []byte("Test")}) 62 assert.NoError(t, err) 63 assert.Equal(t, "WebAuthn Created Credential", res.Name) 64 assert.Equal(t, []byte("Test"), res.CredentialID) 65 66 unittest.AssertExistsIf(t, true, &auth_model.WebAuthnCredential{Name: "WebAuthn Created Credential", UserID: 1}) 67 }