From 954c673d276a9432c5d27d2a6c80dd47cc82c5bf Mon Sep 17 00:00:00 2001 From: kk-no Date: Thu, 28 Dec 2023 12:06:00 +0900 Subject: [PATCH] Split test cases to check different type format in api response --- company_test.go | 50 ++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 3 deletions(-) diff --git a/company_test.go b/company_test.go index abdacec..894f463 100644 --- a/company_test.go +++ b/company_test.go @@ -223,13 +223,58 @@ func TestCompanyServiceOp_Get(t *testing.T) { wantErr error }{ { - name: "Successfully get a company", + name: "Get a company", fields: fields{ companyPath: hubspot.ExportCompanyBasePath, client: hubspot.NewMockClient(&hubspot.MockConfig{ Status: http.StatusOK, Header: http.Header{}, - Body: []byte(`{"id":"company001","properties":{"annualrevenue":"1000000","city":"Cambridge","createdate":"2019-10-30T03:30:17.883Z","domain":"biglytics.net","hs_lastmodifieddate":"2019-12-07T16:50:06.678Z","industry":"Technology","name":"Biglytics","phone":"(877)929-0687","state":"Massachusetts","custom_name":"biglytics","custom_date":"2019-10-30T03:30:17.883Z","hs_created_by_user_id":"","twitterfollowers":1000},"createdAt":"2019-10-30T03:30:17.883Z","updatedAt":"2019-12-07T16:50:06.678Z"}`), + Body: []byte(`{"id":"company001","properties":{"annualrevenue":"1000000","city":"Cambridge","createdate":"2019-10-30T03:30:17.883Z","domain":"biglytics.net","hs_lastmodifieddate":"2019-12-07T16:50:06.678Z","industry":"Technology","name":"Biglytics","phone":"(877)929-0687","state":"Massachusetts","custom_name":"biglytics","custom_date":"2019-10-30T03:30:17.883Z","hs_created_by_user_id":""},"createdAt":"2019-10-30T03:30:17.883Z","updatedAt":"2019-12-07T16:50:06.678Z"}`), + }), + }, + args: args{ + companyID: "company001", + company: &CustomFields{}, + option: &hubspot.RequestQueryOption{ + Properties: []string{ + "custom_name", + "custom_date", + }, + }, + }, + want: &hubspot.ResponseResource{ + ID: "company001", + Archived: false, + Properties: &CustomFields{ + Company: hubspot.Company{ + Annualrevenue: hubspot.NewInt(1000000), + City: hubspot.NewString("Cambridge"), + Createdate: &createdAt, + Domain: hubspot.NewString("biglytics.net"), + HsLastmodifieddate: &updatedAt, + Industry: hubspot.NewString("Technology"), + Name: hubspot.NewString("Biglytics"), + Phone: hubspot.NewString("(877)929-0687"), + State: hubspot.NewString("Massachusetts"), + HsCreatedByUserId: hubspot.NewInt(0), + }, + CustomName: hubspot.NewString("biglytics"), + CustomDate: &createdAt, + }, + CreatedAt: &createdAt, + UpdatedAt: &updatedAt, + }, + wantErr: nil, + }, + { + name: "If the API returns a numeric value when getting a company", + fields: fields{ + companyPath: hubspot.ExportCompanyBasePath, + client: hubspot.NewMockClient(&hubspot.MockConfig{ + Status: http.StatusOK, + Header: http.Header{}, + // NOTE: Normally, numeric types in the HubSpot API are returned as strings (e.g. "", "12345"), but this is to confirm when they are returned as numbers. + Body: []byte(`{"id":"company001","properties":{"annualrevenue":1000000,"city":"Cambridge","createdate":"2019-10-30T03:30:17.883Z","domain":"biglytics.net","hs_lastmodifieddate":"2019-12-07T16:50:06.678Z","industry":"Technology","name":"Biglytics","phone":"(877)929-0687","state":"Massachusetts","custom_name":"biglytics","custom_date":"2019-10-30T03:30:17.883Z","hs_created_by_user_id":0},"createdAt":"2019-10-30T03:30:17.883Z","updatedAt":"2019-12-07T16:50:06.678Z"}`), }), }, args: args{ @@ -257,7 +302,6 @@ func TestCompanyServiceOp_Get(t *testing.T) { Phone: hubspot.NewString("(877)929-0687"), State: hubspot.NewString("Massachusetts"), HsCreatedByUserId: hubspot.NewInt(0), - Twitterfollowers: hubspot.NewInt(1000), }, CustomName: hubspot.NewString("biglytics"), CustomDate: &createdAt,