exchanges: Limit mock test JSON data size by truncating slices and maps (#1968)

* set limiter to first level mock data list and updated unit tests

* address nested slices length limit

* minor fix recording file and update unit tests

* minor updates on unit tests

* re-record mock files and minor fix on the unit tests ti adapt the mock data change

* improve http recording limit value and fix issues with mock data in binance

* added MockDataSliceLimit in request items and resolve minor unit test issues

* resolve missed conflict

* rename mock variables, resolve unit test issues, and other updates

* minor fix to CheckJSON and update unit tests

* minor unit test fix

* further optimization on mock CheckJSON method, unit tests, and re-record poloniex

* common and recording unit tests fix

* minor linter issues fix

* unit tests format fix

* fix miscellaneous error

* unit tests fix and minor docs update

* re-record and reduce mock file size

* indentation fix

* minor assertion test fix

* reverted log.Printf line in live testing

* rename variables

* update NewVCRServer unit test

* replace string comparison with *net.OpError check

* restructur net error test

* exchanges/mock: Remove redundant error assertion message in TestNewVCRServer

---------

Co-authored-by: Adrian Gallagher <adrian.gallagher@thrasher.io>
This commit is contained in:
Samuael A.
2025-08-26 03:27:07 +03:00
committed by GitHub
parent 370666cd21
commit fc0f262c42
47 changed files with 11143 additions and 503139 deletions

View File

@@ -256,7 +256,7 @@ func (r *Requester) doRequest(ctx context.Context, endpoint EndpointLimit, newRe
if p.HTTPRecording {
// This dumps http responses for future mocking implementations
err = mock.HTTPRecord(resp, r.name, contents)
err = mock.HTTPRecord(resp, r.name, contents, p.HTTPMockDataSliceLimit)
if err != nil {
return fmt.Errorf("mock recording failure %w, request %v: resp: %v", err, req, resp)
}

View File

@@ -41,16 +41,17 @@ type Requester struct {
// Item is a temp item for requests
type Item struct {
Method string
Path string
Headers map[string]string
Body io.Reader
Result any
NonceEnabled bool
Verbose bool
HTTPDebugging bool
HTTPRecording bool
IsReserved bool
Method string
Path string
Headers map[string]string
Body io.Reader
Result any
NonceEnabled bool
Verbose bool
HTTPDebugging bool
HTTPRecording bool
HTTPMockDataSliceLimit int // Limits slices per HTTP record to reduce mock data size.
IsReserved bool
// HeaderResponse for inspection of header contents package side useful for
// pagination
HeaderResponse *http.Header