forked from mirrors/homebox
47 lines
1.1 KiB
Go
47 lines
1.1 KiB
Go
package v1
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
|
|
"github.com/hay-kot/content/backend/internal/types"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func Test_NewHandlerV1(t *testing.T) {
|
|
|
|
v1Base := BaseUrlFunc("/testing/v1")
|
|
ctrl := NewControllerV1(mockHandler.svc)
|
|
|
|
assert.NotNil(t, ctrl)
|
|
|
|
assert.Equal(t, "/testing/v1/v1/abc123", v1Base("/abc123"))
|
|
assert.Equal(t, "/testing/v1/v1/abc123", v1Base("/abc123"))
|
|
}
|
|
|
|
func TestHandlersv1_HandleBase(t *testing.T) {
|
|
// Setup
|
|
hdlrFunc := mockHandler.HandleBase(func() bool { return true }, types.Build{
|
|
Version: "0.1.0",
|
|
Commit: "HEAD",
|
|
BuildTime: "now",
|
|
})
|
|
|
|
// Call Handler Func
|
|
rr := httptest.NewRecorder()
|
|
hdlrFunc(rr, nil)
|
|
|
|
// Validate Status Code
|
|
if rr.Code != http.StatusOK {
|
|
t.Errorf("Expected status code to be %d, got %d", http.StatusOK, rr.Code)
|
|
}
|
|
|
|
// Validate Json Payload
|
|
expected := `{"health":true,"versions":null,"title":"Go API Template","message":"Welcome to the Go API Template Application!","Build":{"version":"0.1.0","commit":"HEAD","build_time":"now"}}`
|
|
|
|
if rr.Body.String() != expected {
|
|
t.Errorf("Expected json to be %s, got %s", expected, rr.Body.String())
|
|
}
|
|
|
|
}
|