| package service |
|
|
| import ( |
| "testing" |
|
|
| "github.com/QuantumNous/new-api/types" |
| "github.com/stretchr/testify/require" |
| ) |
|
|
| func TestResetStatusCode(t *testing.T) { |
| t.Parallel() |
|
|
| testCases := []struct { |
| name string |
| statusCode int |
| statusCodeConfig string |
| expectedCode int |
| }{ |
| { |
| name: "map string value", |
| statusCode: 429, |
| statusCodeConfig: `{"429":"503"}`, |
| expectedCode: 503, |
| }, |
| { |
| name: "map int value", |
| statusCode: 429, |
| statusCodeConfig: `{"429":503}`, |
| expectedCode: 503, |
| }, |
| { |
| name: "skip invalid string value", |
| statusCode: 429, |
| statusCodeConfig: `{"429":"bad-code"}`, |
| expectedCode: 429, |
| }, |
| { |
| name: "skip status code 200", |
| statusCode: 200, |
| statusCodeConfig: `{"200":503}`, |
| expectedCode: 200, |
| }, |
| } |
|
|
| for _, tc := range testCases { |
| tc := tc |
| t.Run(tc.name, func(t *testing.T) { |
| t.Parallel() |
|
|
| newAPIError := &types.NewAPIError{ |
| StatusCode: tc.statusCode, |
| } |
| ResetStatusCode(newAPIError, tc.statusCodeConfig) |
| require.Equal(t, tc.expectedCode, newAPIError.StatusCode) |
| }) |
| } |
| } |
|
|