Files
faas-cli/commands/deploy_test.go
Alex Ellis (OpenFaaS Ltd) e5b971a17a Remove Swarm support from faas-cli
Swarm support has now been dropped. This change is blocking
changes in upstream components which rely on the SDK
bundled in the CLI.

Updated comparison in tests to work with structs

Signed-off-by: Alex Ellis (OpenFaaS Ltd) <alexellis2@gmail.com>
2021-01-20 11:52:26 +00:00

93 lines
2.3 KiB
Go

// Copyright (c) Alex Ellis 2017. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
package commands
import (
"net/http"
"regexp"
"strconv"
"strings"
"testing"
"github.com/openfaas/faas-cli/test"
)
func Test_deploy(t *testing.T) {
s := test.MockHttpServer(t, []test.Request{
{
Method: http.MethodPut,
Uri: "/system/functions",
ResponseStatusCode: http.StatusOK,
},
})
defer s.Close()
stdOut := test.CaptureStdout(func() {
faasCmd.SetArgs([]string{
"deploy",
"--gateway=" + s.URL,
"--image=golang",
"--name=test-function",
})
faasCmd.Execute()
})
if found, err := regexp.MatchString(`(?m:Deployed)`, stdOut); err != nil || !found {
t.Fatalf("Output is not as expected:\n%s", stdOut)
}
if found, err := regexp.MatchString(`(?m:200 OK)`, stdOut); err != nil || !found {
t.Fatalf("Output is not as expected:\n%s", stdOut)
}
}
func Test_deployFailed(t *testing.T) {
var failedDeploy = make(map[string]int)
var containedErrorsCount int
failedDeploy["example1"] = 100
failedDeploy["example2"] = 300
failedDeploy["example3"] = 400
failedDeploy["example4"] = 500
err := deployFailed(failedDeploy)
if err == nil {
t.Errorf("\nHad to exit with errors!")
t.Fail()
}
for _, theErrorCode := range failedDeploy {
if strings.Contains(err.Error(), strconv.Itoa(theErrorCode)) {
containedErrorsCount++
}
}
if containedErrorsCount != len(failedDeploy) {
t.Errorf("\nWanted: %d number of errors and got: %d!", len(failedDeploy), containedErrorsCount)
t.Fail()
}
}
func Test_deploySucceeded(t *testing.T) {
var succededDeploy = make(map[string]int)
if err := deployFailed(succededDeploy); err != nil {
t.Errorf("\nHad to exit with no errors!")
t.Fail()
}
}
func Test_badStatusCOde(t *testing.T) {
okStatusCode := 200
if badStatusCode(okStatusCode) {
t.Errorf("\nUnexpected status code - wanted:%d OK!", okStatusCode)
t.Fail()
}
acceptedStatusCode := 202
if badStatusCode(acceptedStatusCode) {
t.Errorf("\nUnexpected status code - wanted:%d Accepted!", acceptedStatusCode)
t.Fail()
}
badStatusC := 300
if !(badStatusCode(badStatusC)) {
t.Errorf("\nUnexpected status code - wanted: %d but got %d or %d", badStatusC, acceptedStatusCode, okStatusCode)
t.Fail()
}
}