1 package tonic
2
3 import (
4 "net/http"
5 "testing"
6
7 "github.com/gin-contrib/requestid"
8 "github.com/gin-gonic/gin"
9 "github.com/stretchr/testify/assert"
10
11 "edge-infra.dev/pkg/lib/logging"
12 )
13
14 func TestNew(t *testing.T) {
15 svr := New()
16 assert.NotEmpty(t, svr)
17 assert.Equal(t, svr.port, defaultPort)
18 assert.Equal(t, svr.mode, gin.ReleaseMode)
19 assert.Equal(t, len(svr.routes), 0)
20 }
21
22 func TestNewWithOptions(t *testing.T) {
23 svr := NewWithOptions("9002", gin.DebugMode)
24 assert.NotEmpty(t, svr)
25 assert.Equal(t, svr.port, "9002")
26 assert.Equal(t, svr.mode, gin.DebugMode)
27 assert.Equal(t, len(svr.routes), 0)
28 }
29
30 func TestWithHealthRoute(t *testing.T) {
31 svr := New().WithHealthRoute()
32 assert.NotEmpty(t, svr)
33 assert.Equal(t, svr.port, defaultPort)
34 assert.Equal(t, svr.mode, gin.ReleaseMode)
35 assert.Equal(t, len(svr.routes), 1)
36 assert.Equal(t, svr.routes[0].Path, "/health")
37 assert.Equal(t, svr.routes[0].Action, MethodAny)
38 }
39
40 func TestWithReadyRoute(t *testing.T) {
41 svr := New().WithReadyRoute()
42 assert.NotEmpty(t, svr)
43 assert.Equal(t, svr.port, defaultPort)
44 assert.Equal(t, svr.mode, gin.ReleaseMode)
45 assert.Equal(t, len(svr.routes), 1)
46 assert.Equal(t, svr.routes[0].Path, "/ready")
47 assert.Equal(t, svr.routes[0].Action, MethodAny)
48 }
49
50 func TestWith404Route(t *testing.T) {
51 svr := New().With404Route()
52 assert.NotEmpty(t, svr)
53 assert.Equal(t, svr.port, defaultPort)
54 assert.Equal(t, svr.mode, gin.ReleaseMode)
55 assert.Equal(t, len(svr.routes), 1)
56 assert.Equal(t, svr.routes[0].Path, "")
57 assert.Equal(t, svr.routes[0].Action, "")
58 }
59
60 func TestRegisterRoutes(t *testing.T) {
61 log := logging.NewLogger().Logger
62 svr := New().SetLogger(log)
63 assert.NotEmpty(t, svr)
64 assert.Equal(t, svr.port, defaultPort)
65 assert.Equal(t, svr.mode, gin.ReleaseMode)
66 assert.NotNil(t, svr.logger)
67 }
68
69 func TestSetRoutes(t *testing.T) {
70 svr := New().SetRoutes(Route{
71 Path: "/hello",
72 Action: http.MethodGet,
73 Handlers: nil,
74 })
75 assert.NotEmpty(t, svr)
76 assert.Equal(t, svr.port, defaultPort)
77 assert.Equal(t, svr.mode, gin.ReleaseMode)
78 assert.Equal(t, len(svr.routes), 1)
79 }
80
81 func TestSetMiddlewares(t *testing.T) {
82 svr := New().SetMiddlewares(requestid.New())
83 assert.NotEmpty(t, svr)
84 assert.Equal(t, svr.port, defaultPort)
85 assert.Equal(t, svr.mode, gin.ReleaseMode)
86 assert.Equal(t, len(svr.middlewares), 1)
87 }
88
View as plain text