@@ -2,11 +2,22 @@ package router
22
33import (
44 "context"
5+ "os"
56 "testing"
67 "time"
78)
89
910func TestNewServer (t * testing.T ) {
11+ // Set required environment variables for tests
12+ os .Setenv ("REDIS_ADDR" , "localhost:6379" )
13+ os .Setenv ("REDIS_PASSWORD" , "test-password" )
14+ os .Setenv ("WORKLOAD_MGR_URL" , "http://localhost:8080" )
15+ defer func () {
16+ os .Unsetenv ("REDIS_ADDR" )
17+ os .Unsetenv ("REDIS_PASSWORD" )
18+ os .Unsetenv ("WORKLOAD_MGR_URL" )
19+ }()
20+
1021 tests := []struct {
1122 name string
1223 config * Config
@@ -76,9 +87,9 @@ func TestNewServer(t *testing.T) {
7687 t .Error ("Session manager was not created" )
7788 }
7889
79- // Verify redis manager was created
80- if server .redisManager == nil {
81- t .Error ("Redis manager was not created" )
90+ // Verify redis client was created
91+ if server .redisClient == nil {
92+ t .Error ("Redis client was not created" )
8293 }
8394
8495 // Verify semaphore was created with correct capacity
@@ -112,6 +123,16 @@ func TestNewServer(t *testing.T) {
112123}
113124
114125func TestServer_DefaultValues (t * testing.T ) {
126+ // Set required environment variables for tests
127+ os .Setenv ("REDIS_ADDR" , "localhost:6379" )
128+ os .Setenv ("REDIS_PASSWORD" , "test-password" )
129+ os .Setenv ("WORKLOAD_MGR_URL" , "http://localhost:8080" )
130+ defer func () {
131+ os .Unsetenv ("REDIS_ADDR" )
132+ os .Unsetenv ("REDIS_PASSWORD" )
133+ os .Unsetenv ("WORKLOAD_MGR_URL" )
134+ }()
135+
115136 config := & Config {
116137 Port : "8080" ,
117138 // Leave other values as zero to test defaults
@@ -145,6 +166,16 @@ func TestServer_DefaultValues(t *testing.T) {
145166}
146167
147168func TestServer_ConcurrencyLimitMiddleware (t * testing.T ) {
169+ // Set required environment variables for tests
170+ os .Setenv ("REDIS_ADDR" , "localhost:6379" )
171+ os .Setenv ("REDIS_PASSWORD" , "test-password" )
172+ os .Setenv ("WORKLOAD_MGR_URL" , "http://localhost:8080" )
173+ defer func () {
174+ os .Unsetenv ("REDIS_ADDR" )
175+ os .Unsetenv ("REDIS_PASSWORD" )
176+ os .Unsetenv ("WORKLOAD_MGR_URL" )
177+ }()
178+
148179 config := & Config {
149180 Port : "8080" ,
150181 MaxConcurrentRequests : 2 , // Small limit for testing
@@ -168,6 +199,16 @@ func TestServer_ConcurrencyLimitMiddleware(t *testing.T) {
168199}
169200
170201func TestServer_SetupRoutes (t * testing.T ) {
202+ // Set required environment variables for tests
203+ os .Setenv ("REDIS_ADDR" , "localhost:6379" )
204+ os .Setenv ("REDIS_PASSWORD" , "test-password" )
205+ os .Setenv ("WORKLOAD_MGR_URL" , "http://localhost:8080" )
206+ defer func () {
207+ os .Unsetenv ("REDIS_ADDR" )
208+ os .Unsetenv ("REDIS_PASSWORD" )
209+ os .Unsetenv ("WORKLOAD_MGR_URL" )
210+ }()
211+
171212 config := & Config {
172213 Port : "8080" ,
173214 }
@@ -187,6 +228,16 @@ func TestServer_SetupRoutes(t *testing.T) {
187228}
188229
189230func TestServer_StartContext (t * testing.T ) {
231+ // Set required environment variables for tests
232+ os .Setenv ("REDIS_ADDR" , "localhost:6379" )
233+ os .Setenv ("REDIS_PASSWORD" , "test-password" )
234+ os .Setenv ("WORKLOAD_MGR_URL" , "http://localhost:8080" )
235+ defer func () {
236+ os .Unsetenv ("REDIS_ADDR" )
237+ os .Unsetenv ("REDIS_PASSWORD" )
238+ os .Unsetenv ("WORKLOAD_MGR_URL" )
239+ }()
240+
190241 config := & Config {
191242 Port : "0" , // Use port 0 to let the OS assign a free port
192243 }
@@ -225,6 +276,16 @@ func TestServer_StartContext(t *testing.T) {
225276}
226277
227278func TestServer_TLSConfiguration (t * testing.T ) {
279+ // Set required environment variables for tests
280+ os .Setenv ("REDIS_ADDR" , "localhost:6379" )
281+ os .Setenv ("REDIS_PASSWORD" , "test-password" )
282+ os .Setenv ("WORKLOAD_MGR_URL" , "http://localhost:8080" )
283+ defer func () {
284+ os .Unsetenv ("REDIS_ADDR" )
285+ os .Unsetenv ("REDIS_PASSWORD" )
286+ os .Unsetenv ("WORKLOAD_MGR_URL" )
287+ }()
288+
228289 tests := []struct {
229290 name string
230291 config * Config
@@ -294,50 +355,27 @@ func TestServer_TLSConfiguration(t *testing.T) {
294355}
295356
296357func TestServer_RedisIntegration (t * testing.T ) {
297- tests := []struct {
298- name string
299- enableRedis bool
300- }{
301- {
302- name : "Redis enabled" ,
303- enableRedis : true ,
304- },
305- {
306- name : "Redis disabled" ,
307- enableRedis : false ,
308- },
309- }
310-
311- for _ , tt := range tests {
312- t .Run (tt .name , func (t * testing.T ) {
313- config := & Config {
314- Port : "8080" ,
315- EnableRedis : tt .enableRedis ,
316- }
358+ // Set required environment variables for tests
359+ os .Setenv ("REDIS_ADDR" , "localhost:6379" )
360+ os .Setenv ("REDIS_PASSWORD" , "test-password" )
361+ os .Setenv ("WORKLOAD_MGR_URL" , "http://localhost:8080" )
362+ defer func () {
363+ os .Unsetenv ("REDIS_ADDR" )
364+ os .Unsetenv ("REDIS_PASSWORD" )
365+ os .Unsetenv ("WORKLOAD_MGR_URL" )
366+ }()
317367
318- server , err := NewServer (config )
319- if err != nil {
320- t .Fatalf ("Failed to create server: %v" , err )
321- }
368+ config := & Config {
369+ Port : "8080" ,
370+ }
322371
323- // Verify Redis manager was created
324- if server . redisManager = = nil {
325- t . Error ( "Redis manager was not created" )
326- }
372+ server , err := NewServer ( config )
373+ if err ! = nil {
374+ t . Fatalf ( "Failed to create server: %v" , err )
375+ }
327376
328- // Test Redis manager functionality based on enabled state
329- err = server .redisManager .UpdateSessionActivity ("test-session" )
330- if tt .enableRedis {
331- if err != nil {
332- t .Errorf ("Expected no error when Redis is enabled, got: %v" , err )
333- }
334- } else {
335- // When disabled, UpdateSessionActivity should not return an error
336- // (it silently skips)
337- if err != nil {
338- t .Errorf ("Expected no error when Redis is disabled, got: %v" , err )
339- }
340- }
341- })
377+ // Verify Redis client was created
378+ if server .redisClient == nil {
379+ t .Error ("Redis client was not created" )
342380 }
343381}
0 commit comments