Wrote test to test Enrolment Keys

This commit is contained in:
walkerwmanuel 2023-02-16 10:56:13 -05:00
parent 5434e9b299
commit 442b32e0d9
3 changed files with 75 additions and 3 deletions

View file

@ -117,7 +117,7 @@ func TryToUseEnrollmentKey(k *models.EnrollmentKey) bool {
// Tokenize - tokenizes an enrollment key to be used via registration
// and attaches it to the Token field on the struct
func Tokenize(k *models.EnrollmentKey, serverAddr string) error {
if len(serverAddr) == 0 {
if len(serverAddr) == 0 || k == nil {
return EnrollmentKeyErrors.FailedToTokenize
}
newToken := models.EnrollmentToken{
@ -128,8 +128,9 @@ func Tokenize(k *models.EnrollmentKey, serverAddr string) error {
if err != nil {
return err
}
k.Token = b64.StdEncoding.EncodeToString([]byte(data))
k.Token = b64.StdEncoding.EncodeToString(data)
return nil
}
// DeTokenize - detokenizes a base64 encoded string

View file

@ -1,6 +1,7 @@
package logic
import (
"fmt"
"testing"
"time"
@ -127,3 +128,73 @@ func TestUsability_EnrollmentKey(t *testing.T) {
func removeAllEnrollments() {
database.DeleteAllRecords(database.ENROLLMENT_KEYS_TABLE_NAME)
}
//Test that cheks if it can tokenize
//Test that cheks if it can't tokenize
func TestTokenize_EnrollmentKeys(t *testing.T) {
database.InitializeDatabase()
defer database.CloseDB()
newKey, _ := CreateEnrollmentKey(0, time.Time{}, []string{"mynet", "skynet"}, nil, true)
fmt.Println(newKey.Value)
const defaultValue = "MwEtpqTSrGd4HTO3ahYDTExKAehh6udJ"
const b64value = "eyJzZXJ2ZXIiOiJhcGkubXlzZXJ2ZXIuY29tIiwidmFsdWUiOiJNd0V0cHFUU3JHZDRIVE8zYWhZRFRFeEtBZWhoNnVkSiJ9"
const serverAddr = "api.myserver.com"
t.Run("Can_Not_Tokenize_Nil_Key", func(t *testing.T) {
err := Tokenize(nil, "ServerAddress")
assert.NotNil(t, err)
assert.Equal(t, err, EnrollmentKeyErrors.FailedToTokenize)
})
t.Run("Can_Not_Tokenize_Empty_Server_Address", func(t *testing.T) {
err := Tokenize(newKey, "")
assert.NotNil(t, err)
assert.Equal(t, err, EnrollmentKeyErrors.FailedToTokenize)
})
t.Run("Can_Tokenize", func(t *testing.T) {
err := Tokenize(newKey, serverAddr)
assert.Nil(t, err)
assert.True(t, len(newKey.Token) > 0)
})
t.Run("Is_Correct_B64_Token", func(t *testing.T) {
newKey.Value = defaultValue
err := Tokenize(newKey, serverAddr)
assert.Nil(t, err)
assert.Equal(t, newKey.Token, b64value)
})
removeAllEnrollments()
}
func TestDeTokenize_EnrollmentKeys(t *testing.T) {
database.InitializeDatabase()
defer database.CloseDB()
newKey, _ := CreateEnrollmentKey(0, time.Time{}, []string{"mynet", "skynet"}, nil, true)
fmt.Println(newKey.Value)
const defaultValue = "MwEtpqTSrGd4HTO3ahYDTExKAehh6udJ"
const b64Value = "eyJzZXJ2ZXIiOiJhcGkubXlzZXJ2ZXIuY29tIiwidmFsdWUiOiJNd0V0cHFUU3JHZDRIVE8zYWhZRFRFeEtBZWhoNnVkSiJ9"
const serverAddr = "api.myserver.com"
t.Run("Can_Not_DeTokenize", func(t *testing.T) {
value, err := DeTokenize("")
assert.Nil(t, value)
assert.NotNil(t, err)
assert.Equal(t, err, EnrollmentKeyErrors.FailedToDeTokenize)
})
t.Run("Can_Not_Find_Key", func(t *testing.T) {
value, err := DeTokenize(b64Value)
assert.Nil(t, value)
assert.NotNil(t, err)
assert.Equal(t, err, EnrollmentKeyErrors.NoKeyFound)
})
t.Run("Can_DeTokenize", func(t *testing.T) {
err := Tokenize(newKey, serverAddr)
assert.Nil(t, err)
output, err := DeTokenize(newKey.Token)
assert.Nil(t, err)
assert.NotNil(t, output)
assert.Equal(t, newKey.Value, output.Value)
})
removeAllEnrollments()
}

View file

@ -7,7 +7,7 @@ import (
// EnrollmentToken - the tokenized version of an enrollmentkey;
// to be used for host registration
type EnrollmentToken struct {
Server string `json:"value"`
Server string `json:"server"`
Value string `json:"value"`
}