mirror of
https://github.com/d0zingcat/gocryptotrader.git
synced 2026-05-13 23:16:45 +00:00
Feature: Add mock testing to ZB (#569)
* Adds mock testing to ZB
* STEALS improved time validation code from the original STOLEN validation code :D
* Mini fixes from review
* happy fun comment stealing
* Moves the loop checker earlier to ensure no double appendages
* Fixes sneaky test
* Fixes the important part where mock tests work instead of live tests
* Skips authenticated endpoints for mock testing.
* lint
* Updates candle wrapper functions to respect design
* basic linting fix
* Reverts configtest.json, updates readme to be way better, adds coverage to validateCandlesRequest
* Tiniest grammatical fix
* Fixes more outdated code references
* Closing out a high
* Fixes spacing
* Replaces all instances of 4 spaces in tmpl files with a tab
* fixes spacing and tab related readme issues once and for all 🤞
* tidy
* indentation violation identification situation
This commit is contained in:
@@ -21,8 +21,8 @@ Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader
|
||||
## Current Features for validate
|
||||
|
||||
+ This package allows for validation options to occur exchange side e.g.
|
||||
- Checking for ID in an order cancellation struct.
|
||||
- Determining the correct withdrawal bank details for a specific exchange.
|
||||
- Checking for ID in an order cancellation struct.
|
||||
- Determining the correct withdrawal bank details for a specific exchange.
|
||||
|
||||
+ Example Usage below:
|
||||
|
||||
@@ -32,21 +32,21 @@ Join our slack to discuss all things related to GoCryptoTrader! [GoCryptoTrader
|
||||
|
||||
// define your data structure across potential exchanges
|
||||
type Critical struct {
|
||||
ID string
|
||||
Person string
|
||||
Banks string
|
||||
MoneysUSD float64
|
||||
ID string
|
||||
Person string
|
||||
Banks string
|
||||
MoneysUSD float64
|
||||
}
|
||||
|
||||
// define validation and add a variadic param
|
||||
func (supercritcalinfo *Critical) Validate(opt ...validate.Checker) error {
|
||||
// define base level validation
|
||||
if supercritcalinfo != nil {
|
||||
// oh no this is nil, could panic program!
|
||||
}
|
||||
// define base level validation
|
||||
if supercritcalinfo != nil {
|
||||
// oh no this is nil, could panic program!
|
||||
}
|
||||
|
||||
// range over potential checks coming from individual packages
|
||||
var errs common.Errors
|
||||
// range over potential checks coming from individual packages
|
||||
var errs common.Errors
|
||||
for _, o := range opt {
|
||||
err := o.Check()
|
||||
if err != nil {
|
||||
@@ -57,18 +57,18 @@ func (supercritcalinfo *Critical) Validate(opt ...validate.Checker) error {
|
||||
if errs != nil {
|
||||
return errs
|
||||
}
|
||||
return nil
|
||||
return nil
|
||||
}
|
||||
|
||||
// define an exchange or package level check that returns a validate.Checker
|
||||
// interface
|
||||
func (supercritcalinfo *Critical) PleaseDontSendMoneyToParents() validate.Checker {
|
||||
return validate.Check(func() error {
|
||||
return validate.Check(func() error {
|
||||
if supercritcalinfo.Person == "Mother Dearest" ||
|
||||
supercritcalinfo.Person == "Father Dearest" {
|
||||
return errors.New("nope")
|
||||
}
|
||||
return nil
|
||||
supercritcalinfo.Person == "Father Dearest" {
|
||||
return errors.New("nope")
|
||||
}
|
||||
return nil
|
||||
})
|
||||
}
|
||||
|
||||
@@ -79,13 +79,13 @@ d := Critical{Person: "Mother Dearest", MoneysUSD: 1337.30}
|
||||
// This should not error
|
||||
err := d.Validate()
|
||||
if err != nil {
|
||||
return err
|
||||
return err
|
||||
}
|
||||
|
||||
// This should error
|
||||
err := d.Validate(d.PleaseDontSendMoneyToParents())
|
||||
if err != nil {
|
||||
return err
|
||||
return err
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user