Initial cloud-services repo - gateway service + pkg modules

This commit is contained in:
Chris Rai
2026-01-30 23:14:52 -05:00
commit fbb820d7b3
1037 changed files with 171318 additions and 0 deletions

View File

@@ -0,0 +1,102 @@
package loggerdataresp_test
import (
"errors"
"fmt"
"io"
"net/http"
"net/http/httptest"
"testing"
"fiskerinc.com/modules/testhelper"
ve "fiskerinc.com/modules/validator"
"fiskerinc.com/modules/loggerdataresp"
)
func TestBadDataErrorResp(t *testing.T) {
type testcase struct {
Name string
Err error
ExpectedBody string
ExpectedStatus int
}
tests := []testcase{
{
Name: "Field",
Err: &ve.FieldError{
ErrorMsg: "TEST ERROR",
},
ExpectedBody: `{"message":"TEST ERROR","error":"Bad Request"}`,
ExpectedStatus: http.StatusBadRequest,
},
{
Name: "Postgres Constraint",
Err: &MockPGError{
FieldDesc: "THIS IS A TEST",
Integrity: true,
},
ExpectedBody: `{"message":"THIS IS A TEST","error":"Bad Request"}`,
ExpectedStatus: http.StatusBadRequest,
},
{
Name: "Postgres Non-Constraint",
Err: &MockPGError{
ErrorDesc: "GENERAL ERROR",
Integrity: false,
},
ExpectedBody: `{"message":"GENERAL ERROR","error":"Service Unavailable"}`,
ExpectedStatus: http.StatusServiceUnavailable,
},
{
Name: "SAP not available error",
Err: errors.New("calling SAP failed"),
ExpectedBody: `{"message":"calling SAP failed","error":"Service Unavailable"}`,
ExpectedStatus: http.StatusServiceUnavailable,
},
{
Name: "EOF error check",
Err: io.EOF,
ExpectedBody: `{"message":"EOF","error":"Not Found"}`,
ExpectedStatus: http.StatusNotFound,
},
{
Name: "General",
Err: fmt.Errorf("GENERAL ERROR"),
ExpectedBody: `{"message":"GENERAL ERROR","error":"Service Unavailable"}`,
ExpectedStatus: http.StatusServiceUnavailable,
},
}
for _, test := range tests {
res := httptest.NewRecorder()
loggerdataresp.BadDataErrorResp(res, test.Err, http.StatusServiceUnavailable, loggerdataresp.EofErrorCheck)
if res.Result().StatusCode != test.ExpectedStatus {
t.Errorf(testhelper.TestErrorTemplate, test.Name, test.ExpectedStatus, res.Result().StatusCode)
}
body := res.Body.String()
if body != test.ExpectedBody {
t.Errorf(testhelper.TestErrorTemplate, test.Name, test.ExpectedBody, body)
}
}
}
type MockPGError struct {
ErrorDesc string
FieldDesc string
Integrity bool
}
func (mpg *MockPGError) Error() string {
return mpg.ErrorDesc
}
func (mpg *MockPGError) Field(field byte) string {
return mpg.FieldDesc
}
func (mpg *MockPGError) IntegrityViolation() bool {
return mpg.Integrity
}