Skip to content

Commit

Permalink
new tests
Browse files Browse the repository at this point in the history
  • Loading branch information
henrod committed Feb 26, 2019
1 parent f33024e commit 1410414
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 0 deletions.
39 changes: 39 additions & 0 deletions errors/errors_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -106,3 +106,42 @@ func TestErrorError(t *testing.T) {
errStr := err.Error()
assert.Equal(t, sourceErr.Error(), errStr)
}

func TestCodeFromError(t *testing.T) {
t.Parallel()

errTest := errors.New("error")
codeNotFound := "GAME-404"

tables := map[string]struct {
err error
code string
}{
"test_not_error": {
err: nil,
code: "",
},

"test_not_pitaya_error": {
err: errTest,
code: ErrUnknownCode,
},

"test_nil_pitaya_error": {
err: func() *Error { var err *Error; return err }(),
code: "",
},

"test_pitaya_error": {
err: NewError(errTest, codeNotFound),
code: codeNotFound,
},
}

for name, table := range tables {
t.Run(name, func(t *testing.T) {
code := CodeFromError(table.err)
assert.Equal(t, table.code, code)
})
}
}
46 changes: 46 additions & 0 deletions metrics/report_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import (
"github.com/stretchr/testify/assert"
"github.com/topfreegames/pitaya/constants"
pcontext "github.com/topfreegames/pitaya/context"
e "github.com/topfreegames/pitaya/errors"
"github.com/topfreegames/pitaya/metrics/mocks"
)

Expand Down Expand Up @@ -109,6 +110,51 @@ func TestReportTimingFromCtx(t *testing.T) {

ReportTimingFromCtx(ctx, []Reporter{mockMetricsReporter}, expectedType, expectedErr)
})

t.Run("test-failed-route-with-pitaya-error", func(t *testing.T) {
ctrl := gomock.NewController(t)
defer ctrl.Finish()
mockMetricsReporter := mocks.NewMockReporter(ctrl)

originalTs := time.Now().UnixNano()
expectedRoute := uuid.New().String()
expectedType := uuid.New().String()
code := "GAME-404"
expectedErr := e.NewError(errors.New("error"), code)
ctx := pcontext.AddToPropagateCtx(context.Background(), constants.StartTimeKey, originalTs)
ctx = pcontext.AddToPropagateCtx(ctx, constants.RouteKey, expectedRoute)

mockMetricsReporter.EXPECT().ReportSummary(ResponseTime, map[string]string{
"route": expectedRoute,
"status": "failed",
"type": expectedType,
"code": code,
}, gomock.Any())

ReportTimingFromCtx(ctx, []Reporter{mockMetricsReporter}, expectedType, expectedErr)
})

t.Run("test-failed-route", func(t *testing.T) {
ctrl := gomock.NewController(t)
defer ctrl.Finish()
mockMetricsReporter := mocks.NewMockReporter(ctrl)

originalTs := time.Now().UnixNano()
expectedRoute := uuid.New().String()
expectedType := uuid.New().String()
expectedErr := errors.New("error")
ctx := pcontext.AddToPropagateCtx(context.Background(), constants.StartTimeKey, originalTs)
ctx = pcontext.AddToPropagateCtx(ctx, constants.RouteKey, expectedRoute)

mockMetricsReporter.EXPECT().ReportSummary(ResponseTime, map[string]string{
"route": expectedRoute,
"status": "failed",
"type": expectedType,
"code": e.ErrUnknownCode,
}, gomock.Any())

ReportTimingFromCtx(ctx, []Reporter{mockMetricsReporter}, expectedType, expectedErr)
})
}

func TestReportMessageProcessDelayFromCtx(t *testing.T) {
Expand Down

0 comments on commit 1410414

Please sign in to comment.