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) }) } }