33 lines
1.3 KiB
Go
33 lines
1.3 KiB
Go
package provisioning
|
|
|
|
import (
|
|
"net/http/httptest"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
)
|
|
|
|
func TestCreateRequestRejectsCredentialColumns(t *testing.T) {
|
|
gin.SetMode(gin.TestMode)
|
|
recorder := httptest.NewRecorder()
|
|
context, _ := gin.CreateTestContext(recorder)
|
|
context.Request = httptest.NewRequest("POST", "/api/v1/provisioning/batches", strings.NewReader(`{
|
|
"idempotencyKey":"import-1",
|
|
"rows":[{"lineNumber":1,"name":"东门摄像机","location":"东门","address":"http://192.0.2.10/onvif","password":"must-not-be-accepted"}]
|
|
}`))
|
|
context.Request.Header.Set("Content-Type", "application/json")
|
|
var request CreateBatchRequest
|
|
if err := bindStrictJSON(context, &request); err == nil || !strings.Contains(err.Error(), "unknown field") {
|
|
t.Fatalf("expected unknown credential field to be rejected, got %v", err)
|
|
}
|
|
}
|
|
|
|
func TestClearCredentialsOverwritesTransientValues(t *testing.T) {
|
|
values := []CredentialInput{{ONVIFUsername: "installer", ONVIFPassword: "temporary-secret", RTSPUsername: "stream", RTSPPassword: "stream-secret"}}
|
|
clearCredentials(values)
|
|
if values[0].ONVIFUsername != "" || values[0].ONVIFPassword != "" || values[0].RTSPUsername != "" || values[0].RTSPPassword != "" {
|
|
t.Fatalf("credentials were not cleared: %#v", values[0])
|
|
}
|
|
}
|