@@ -9,11 +9,11 @@ import (
99 "github.com/stretchr/testify/assert"
1010)
1111
12- func TestCreateMiddleware (t * testing.T ) {
12+ func TestCreateMiddleware_WithoutAuth (t * testing.T ) {
1313 log := testlogger .New ()
14- middlewares := CreateMiddleware (log .Logger )
14+ middlewares := CreateMiddleware (log .Logger , false )
1515
16- // Should return 5 middlewares
16+ // Should return 5 middlewares when auth is false
1717 assert .Len (t , middlewares , 5 )
1818
1919 // Each middleware should be a valid function
@@ -39,3 +39,34 @@ func TestCreateMiddleware(t *testing.T) {
3939
4040 assert .Equal (t , http .StatusOK , recorder .Code )
4141}
42+
43+ func TestCreateMiddleware_WithAuth (t * testing.T ) {
44+ log := testlogger .New ()
45+ middlewares := CreateMiddleware (log .Logger , true )
46+
47+ // Should return 8 middlewares when auth is true (5 base + 3 auth)
48+ assert .Len (t , middlewares , 8 )
49+
50+ // Each middleware should be a valid function
51+ for _ , mw := range middlewares {
52+ assert .NotNil (t , mw )
53+ }
54+
55+ // Test that middlewares can be chained
56+ handler := http .HandlerFunc (func (w http.ResponseWriter , r * http.Request ) {
57+ w .WriteHeader (http .StatusOK )
58+ })
59+
60+ // Apply all middlewares
61+ var finalHandler http.Handler = handler
62+ for i := len (middlewares ) - 1 ; i >= 0 ; i -- {
63+ finalHandler = middlewares [i ](finalHandler )
64+ }
65+
66+ req := httptest .NewRequest ("GET" , "http://testing" , nil )
67+ recorder := httptest .NewRecorder ()
68+
69+ finalHandler .ServeHTTP (recorder , req )
70+
71+ assert .Equal (t , http .StatusOK , recorder .Code )
72+ }
0 commit comments