mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-11 23:54:22 +08:00
Wrote test to test Enrolment Keys
This commit is contained in:
parent
5434e9b299
commit
442b32e0d9
3 changed files with 75 additions and 3 deletions
|
@ -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
|
||||
|
|
|
@ -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()
|
||||
}
|
||||
|
|
|
@ -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"`
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue