|
7 | 7 | "testing" |
8 | 8 | "time" |
9 | 9 |
|
| 10 | + "github.com/stretchr/testify/assert" |
| 11 | + |
| 12 | + "gofr.dev/pkg/gofr/service" |
10 | 13 | "gofr.dev/pkg/gofr/testutil" |
11 | 14 | ) |
12 | 15 |
|
@@ -47,3 +50,42 @@ func TestDynamicLoggerSuccess(t *testing.T) { |
47 | 50 | t.Errorf("TestDynamicLoggerSuccess failed! missing debug log") |
48 | 51 | } |
49 | 52 | } |
| 53 | + |
| 54 | +func Test_fetchAndUpdateLogLevel_ErrorCases(t *testing.T) { |
| 55 | + logger := testutil.NewMockLogger(testutil.INFOLOG) |
| 56 | + |
| 57 | + remoteService := service.NewHTTPService("http://", logger, nil) |
| 58 | + |
| 59 | + mockServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { |
| 60 | + w.Header().Set("Content-Type", "application/json") |
| 61 | + body := `{ |
| 62 | + "data": [ |
| 63 | + { |
| 64 | + "invalid" |
| 65 | + } |
| 66 | + } |
| 67 | + ] |
| 68 | + }` |
| 69 | + _, _ = w.Write([]byte(body)) |
| 70 | + })) |
| 71 | + defer mockServer.Close() |
| 72 | + |
| 73 | + remoteService2 := service.NewHTTPService(mockServer.URL, logger, nil) |
| 74 | + |
| 75 | + tests := []struct { |
| 76 | + desc string |
| 77 | + remoteService service.HTTP |
| 78 | + currentLogLevel Level |
| 79 | + }{ |
| 80 | + {"invalid URL for remote service", remoteService, testutil.INFOLOG}, |
| 81 | + {"invalid response from remote service", remoteService2, testutil.DEBUGLOG}, |
| 82 | + } |
| 83 | + |
| 84 | + for i, tc := range tests { |
| 85 | + level, err := fetchAndUpdateLogLevel(tc.remoteService, tc.currentLogLevel) |
| 86 | + |
| 87 | + assert.Equal(t, tc.currentLogLevel, level, "TEST[%d], Failed.\n%s", i, tc.desc) |
| 88 | + |
| 89 | + assert.NotNil(t, err) |
| 90 | + } |
| 91 | +} |
0 commit comments