mirror of
https://github.com/gravitl/netmaker.git
synced 2025-10-08 10:11:08 +08:00
105 lines
3.2 KiB
Go
105 lines
3.2 KiB
Go
package logic
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/gravitl/netmaker/database"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestCreateEnrollmentKey(t *testing.T) {
|
|
database.InitializeDatabase()
|
|
defer database.CloseDB()
|
|
t.Run("Can_Not_Create_Key", func(t *testing.T) {
|
|
newKey, err := CreateEnrollmentKey(0, time.Time{}, nil, nil, false)
|
|
assert.Nil(t, newKey)
|
|
assert.NotNil(t, err)
|
|
assert.Equal(t, err.Error(), EnrollmentKeyErrors.InvalidCreate)
|
|
})
|
|
t.Run("Can_Create_Key_Uses", func(t *testing.T) {
|
|
newKey, err := CreateEnrollmentKey(1, time.Time{}, nil, nil, false)
|
|
assert.Nil(t, err)
|
|
assert.Equal(t, 1, newKey.UsesRemaining)
|
|
assert.True(t, newKey.IsValid())
|
|
})
|
|
t.Run("Can_Create_Key_Time", func(t *testing.T) {
|
|
newKey, err := CreateEnrollmentKey(0, time.Now().Add(time.Minute), nil, nil, false)
|
|
assert.Nil(t, err)
|
|
assert.True(t, newKey.IsValid())
|
|
})
|
|
t.Run("Can_Create_Key_Unlimited", func(t *testing.T) {
|
|
newKey, err := CreateEnrollmentKey(0, time.Time{}, nil, nil, true)
|
|
assert.Nil(t, err)
|
|
assert.True(t, newKey.IsValid())
|
|
})
|
|
t.Run("Can_Create_Key_WithNetworks", func(t *testing.T) {
|
|
newKey, err := CreateEnrollmentKey(0, time.Time{}, []string{"mynet", "skynet"}, nil, true)
|
|
assert.Nil(t, err)
|
|
assert.True(t, newKey.IsValid())
|
|
assert.True(t, len(newKey.Networks) == 2)
|
|
})
|
|
t.Run("Can_Create_Key_WithTags", func(t *testing.T) {
|
|
newKey, err := CreateEnrollmentKey(0, time.Time{}, nil, []string{"tag1", "tag2"}, true)
|
|
assert.Nil(t, err)
|
|
assert.True(t, newKey.IsValid())
|
|
assert.True(t, len(newKey.Tags) == 2)
|
|
})
|
|
removeAllEnrollments()
|
|
}
|
|
|
|
func TestDelete_EnrollmentKey(t *testing.T) {
|
|
database.InitializeDatabase()
|
|
defer database.CloseDB()
|
|
newKey, _ := CreateEnrollmentKey(0, time.Time{}, []string{"mynet", "skynet"}, nil, true)
|
|
t.Run("Can_Delete_Key", func(t *testing.T) {
|
|
assert.True(t, newKey.IsValid())
|
|
err := DeleteEnrollmentKey(newKey.Value)
|
|
assert.Nil(t, err)
|
|
oldKey, err := GetEnrollmentKey(newKey.Value)
|
|
assert.Nil(t, oldKey)
|
|
assert.NotNil(t, err)
|
|
assert.Equal(t, err.Error(), EnrollmentKeyErrors.NoKeyFound)
|
|
})
|
|
t.Run("Can_Not_Delete_Invalid_Key", func(t *testing.T) {
|
|
err := DeleteEnrollmentKey("notakey")
|
|
assert.NotNil(t, err)
|
|
assert.Equal(t, err.Error(), EnrollmentKeyErrors.NoKeyFound)
|
|
})
|
|
removeAllEnrollments()
|
|
}
|
|
|
|
func TestDecrement_EnrollmentKey(t *testing.T) {
|
|
database.InitializeDatabase()
|
|
defer database.CloseDB()
|
|
newKey, _ := CreateEnrollmentKey(1, time.Time{}, nil, nil, true)
|
|
t.Run("Check_initial_uses", func(t *testing.T) {
|
|
assert.True(t, newKey.IsValid())
|
|
assert.Equal(t, newKey.UsesRemaining, 1)
|
|
})
|
|
t.Run("Check can decrement", func(t *testing.T) {
|
|
assert.Equal(t, newKey.UsesRemaining, 1)
|
|
k, err := DecrementEnrollmentKey(newKey.Value)
|
|
assert.Nil(t, err)
|
|
newKey = k
|
|
})
|
|
t.Run("Check can not decrement", func(t *testing.T) {
|
|
assert.Equal(t, newKey.UsesRemaining, 0)
|
|
_, err := DecrementEnrollmentKey(newKey.Value)
|
|
assert.NotNil(t, err)
|
|
assert.Equal(t, err.Error(), EnrollmentKeyErrors.NoUsesRemaining)
|
|
})
|
|
|
|
removeAllEnrollments()
|
|
}
|
|
|
|
// func TestValidity_EnrollmentKey(t *testing.T) {
|
|
// database.InitializeDatabase()
|
|
// defer database.CloseDB()
|
|
|
|
// }
|
|
|
|
func removeAllEnrollments() {
|
|
database.DeleteAllRecords(database.ENROLLMENT_KEYS_TABLE_NAME)
|
|
}
|