diff --git a/controllers/config/environments/dev.yaml b/controllers/config/environments/dev.yaml new file mode 100644 index 00000000..1143af15 --- /dev/null +++ b/controllers/config/environments/dev.yaml @@ -0,0 +1,17 @@ +server: + host: "localhost" + apiport: "8081" + grpcport: "50051" + masterkey: "secretkey" + allowedorigin: "*" + restbackend: true + agentbackend: true + defaultnetname: "default" + defaultnetrange: "10.10.10.0/24" + createdefault: true +mongoconn: + user: "mongoadmin" + pass: "mongopass" + host: "localhost" + port: "27017" + opts: '/?authSource=admin' diff --git a/controllers/userHttpController.go b/controllers/userHttpController.go index cc180220..b3a033a8 100644 --- a/controllers/userHttpController.go +++ b/controllers/userHttpController.go @@ -195,8 +195,9 @@ func HasAdmin() (bool, error) { if err != nil { if err == mongo.ErrNoDocuments { - return false, err + return false, nil } + return false, err fmt.Println(err) } return true, err diff --git a/controllers/userHttpController_test.go b/controllers/userHttpController_test.go new file mode 100644 index 00000000..20420450 --- /dev/null +++ b/controllers/userHttpController_test.go @@ -0,0 +1,56 @@ +package controller + +import ( + "context" + "os" + "testing" + "time" + + "github.com/gravitl/netmaker/models" + "github.com/gravitl/netmaker/mongoconn" + "github.com/stretchr/testify/assert" +) + +func TestMain(m *testing.M) { + mongoconn.ConnectDatabase() + //var waitgroup sync.WaitGroup + //waitgroup.Add(1) + //go controller.HandleRESTRequests(&waitgroup) + var gconf models.GlobalConfig + gconf.ServerGRPC = "localhost:8081" + gconf.PortGRPC = "50051" + //err := SetGlobalConfig(gconf) + collection := mongoconn.Client.Database("netmaker").Collection("config") + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + //create, _, err := functions.GetGlobalConfig() + _, err := collection.InsertOne(ctx, gconf) + if err != nil { + panic("could not create config store") + } + + //wait for http server to start + //time.Sleep(time.Second * 1) + os.Exit(m.Run()) +} + +func TestDeleteUser(t *testing.T) { + hasadmin, err := HasAdmin() + assert.Nil(t, err, err) + if !hasadmin { + //if !adminExists() { + user := models.User{"admin", "admin", true} + _, err := CreateUser(user) + assert.Nil(t, err, err) + } + t.Run("ExistingUser", func(t *testing.T) { + deleted, err := DeleteUser("admin") + assert.Nil(t, err, err) + assert.True(t, deleted) + }) + t.Run("NonExistantUser", func(t *testing.T) { + deleted, err := DeleteUser("admin") + assert.Nil(t, err, err) + assert.False(t, deleted) + }) +}