New field Tags in Customer struct

This commit is contained in:
Alex Lushpai 2020-08-04 15:49:06 +03:00 committed by GitHub
commit e9c6bf7474
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 55 additions and 22 deletions

View File

@ -9,6 +9,7 @@ import (
"net/http" "net/http"
"net/url" "net/url"
"os" "os"
"reflect"
"strconv" "strconv"
"strings" "strings"
"testing" "testing"
@ -273,6 +274,10 @@ func TestClient_CustomerChange(t *testing.T) {
Street: "Кутузовский", Street: "Кутузовский",
Building: "14", Building: "14",
}, },
Tags: []Tag{
{"first", "#3e89b6", false},
{"second", "#ffa654", false},
},
} }
defer gock.Off() defer gock.Off()
@ -337,7 +342,23 @@ func TestClient_CustomerChange(t *testing.T) {
Get(fmt.Sprintf("/api/v5/customers/%v", f.ExternalID)). Get(fmt.Sprintf("/api/v5/customers/%v", f.ExternalID)).
MatchParam("by", ByExternalID). MatchParam("by", ByExternalID).
Reply(200). Reply(200).
BodyString(`{"success": true}`) BodyString(`{
"success": true,
"customer": {
"tags": [
{
"name": "first",
"color": "#3e89b6",
"attached": false
},
{
"name": "second",
"color": "#ffa654",
"attached": false
}
]
}
}`)
data, status, err := c.Customer(f.ExternalID, ByExternalID, "") data, status, err := c.Customer(f.ExternalID, ByExternalID, "")
if err.Error() != "" { if err.Error() != "" {
@ -351,6 +372,10 @@ func TestClient_CustomerChange(t *testing.T) {
if data.Success != true { if data.Success != true {
t.Errorf("%v", err.ApiError()) t.Errorf("%v", err.ApiError())
} }
if !reflect.DeepEqual(data.Customer.Tags, f.Tags) {
t.Errorf("%v", err.ApiError())
}
} }
func TestClient_CustomerChange_Fail(t *testing.T) { func TestClient_CustomerChange_Fail(t *testing.T) {

View File

@ -149,6 +149,7 @@ type Customer struct {
MgCustomerID string `json:"mgCustomerId,omitempty"` MgCustomerID string `json:"mgCustomerId,omitempty"`
PhotoURL string `json:"photoUrl,omitempty"` PhotoURL string `json:"photoUrl,omitempty"`
CustomFields map[string]string `json:"customFields,omitempty,brackets"` CustomFields map[string]string `json:"customFields,omitempty,brackets"`
Tags []Tag `json:"tags,brackets,omitempty"`
} }
// CorporateCustomer type // CorporateCustomer type
@ -1101,3 +1102,10 @@ type Activity struct {
Active bool `json:"active"` Active bool `json:"active"`
Freeze bool `json:"freeze"` Freeze bool `json:"freeze"`
} }
// Tag struct
type Tag struct {
Name string `json:"name,omitempty"`
Color string `json:"color,omitempty"`
Attached bool `json:"attached,omitempty"`
}