mirror of
				https://github.com/cloudreve/cloudreve.git
				synced 2025-11-04 13:16:02 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			85 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package model
 | 
						|
 | 
						|
import (
 | 
						|
	"github.com/DATA-DOG/go-sqlmock"
 | 
						|
	"github.com/duo-labs/webauthn/webauthn"
 | 
						|
	"github.com/jinzhu/gorm"
 | 
						|
	"github.com/stretchr/testify/assert"
 | 
						|
	"testing"
 | 
						|
)
 | 
						|
 | 
						|
func TestUser_RegisterAuthn(t *testing.T) {
 | 
						|
	asserts := assert.New(t)
 | 
						|
	credential := webauthn.Credential{}
 | 
						|
	user := User{
 | 
						|
		Model: gorm.Model{ID: 1},
 | 
						|
	}
 | 
						|
 | 
						|
	{
 | 
						|
		mock.ExpectBegin()
 | 
						|
		mock.ExpectExec("UPDATE(.+)").
 | 
						|
			WillReturnResult(sqlmock.NewResult(1, 1))
 | 
						|
		mock.ExpectCommit()
 | 
						|
		user.RegisterAuthn(&credential)
 | 
						|
		asserts.NoError(mock.ExpectationsWereMet())
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestUser_WebAuthnCredentials(t *testing.T) {
 | 
						|
	asserts := assert.New(t)
 | 
						|
	user := User{
 | 
						|
		Model: gorm.Model{ID: 1},
 | 
						|
		Authn: `[{"ID":"123","PublicKey":"+4sg1vYcjg/+=","AttestationType":"packed","Authenticator":{"AAGUID":"+lg==","SignCount":0,"CloneWarning":false}}]`,
 | 
						|
	}
 | 
						|
	{
 | 
						|
		credentials := user.WebAuthnCredentials()
 | 
						|
		asserts.Len(credentials, 1)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestUser_WebAuthnDisplayName(t *testing.T) {
 | 
						|
	asserts := assert.New(t)
 | 
						|
	user := User{
 | 
						|
		Model: gorm.Model{ID: 1},
 | 
						|
		Nick:  "123",
 | 
						|
	}
 | 
						|
	{
 | 
						|
		nick := user.WebAuthnDisplayName()
 | 
						|
		asserts.Equal("123", nick)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestUser_WebAuthnIcon(t *testing.T) {
 | 
						|
	asserts := assert.New(t)
 | 
						|
	user := User{
 | 
						|
		Model: gorm.Model{ID: 1},
 | 
						|
	}
 | 
						|
	{
 | 
						|
		icon := user.WebAuthnIcon()
 | 
						|
		asserts.NotEmpty(icon)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestUser_WebAuthnID(t *testing.T) {
 | 
						|
	asserts := assert.New(t)
 | 
						|
	user := User{
 | 
						|
		Model: gorm.Model{ID: 1},
 | 
						|
	}
 | 
						|
	{
 | 
						|
		id := user.WebAuthnID()
 | 
						|
		asserts.Len(id, 8)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
func TestUser_WebAuthnName(t *testing.T) {
 | 
						|
	asserts := assert.New(t)
 | 
						|
	user := User{
 | 
						|
		Model: gorm.Model{ID: 1},
 | 
						|
		Email: "abslant@foxmail.com",
 | 
						|
	}
 | 
						|
	{
 | 
						|
		name := user.WebAuthnName()
 | 
						|
		asserts.Equal("abslant@foxmail.com", name)
 | 
						|
	}
 | 
						|
}
 |