From 813a179aac27838358b82c1a4334025d407c750e Mon Sep 17 00:00:00 2001 From: antooinerobin Date: Thu, 5 Oct 2023 19:10:30 +0200 Subject: [PATCH] full coverage of transverses_misc.go --- choruspro.go | 25 +++++++++++++------------ choruspro_test.go | 11 +++++++++-- transverses_misc_test.go | 22 +++++++++++----------- 3 files changed, 33 insertions(+), 25 deletions(-) diff --git a/choruspro.go b/choruspro.go index c8b3628..0edfc0d 100644 --- a/choruspro.go +++ b/choruspro.go @@ -109,17 +109,6 @@ func (c *Client) newRequest(ctx context.Context, method, url string, body interf return nil, err } - // Check if token is valid, if not, get a new one - if !c.token.Valid() { - token, err := getOAuthToken(c.clientId, c.clientSecret, c.AuthUrl) - if err != nil { - return nil, err - } - - // Update token - c.token = token - } - data, err := json.Marshal(body) // Temp @@ -134,7 +123,6 @@ func (c *Client) newRequest(ctx context.Context, method, url string, body interf return nil, err } - req.Header.Add("Authorization", fmt.Sprintf("Bearer %v", c.token.AccessToken)) req.Header.Add("Content-Type", "application/json;charset=utf-8") req.Header.Add("cpro-account", c.login) @@ -142,6 +130,19 @@ func (c *Client) newRequest(ctx context.Context, method, url string, body interf } func (c *Client) doRequest(ctx context.Context, req *http.Request, obj interface{}) error { + // Check if token is valid, if not, get a new one + if !c.token.Valid() { + token, err := getOAuthToken(c.clientId, c.clientSecret, c.AuthUrl) + if err != nil { + return err + } + + // Update token + c.token = token + + req.Header.Add("Authorization", fmt.Sprintf("Bearer %v", c.token.AccessToken)) + } + res, err := c.client.Do(req) if err != nil { return err diff --git a/choruspro_test.go b/choruspro_test.go index 71a4c15..bae30a6 100644 --- a/choruspro_test.go +++ b/choruspro_test.go @@ -26,10 +26,10 @@ func setup() (client *Client, mux *http.ServeMux, teardown func()) { return client, mux, server.Close } -// Test function under s.client.DoRequest failure. +// Test function under s.client.NewRequest or s.client.DoRequest failure. // Method f should be a regular call that would normally succeed, but // should return an error when NewRequest or s.client.DoRequest fails. -func testDoRequestFailure(t *testing.T, methodName string, client *Client, f func() error) { +func testNewRequestAndDoRequestFailure(t *testing.T, methodName string, client *Client, f func() error) { t.Helper() if methodName == "" { t.Error("testNewRequestAndDoFailure : method name should be provided") @@ -41,6 +41,13 @@ func testDoRequestFailure(t *testing.T, methodName string, client *Client, f fun if err == nil { t.Errorf("client.BaseURL.Path='' %v err = nil, want error", methodName) } + + client.BaseUrl.Path = "/v1/" + err = f() + + if err == nil { + t.Errorf("client.AuthURL.Path='' %v err = nil, want error", methodName) + } } func testMethod(t *testing.T, r *http.Request, want string) { diff --git a/transverses_misc_test.go b/transverses_misc_test.go index 05618c0..27d7e8a 100644 --- a/transverses_misc_test.go +++ b/transverses_misc_test.go @@ -28,7 +28,7 @@ func TestTransversesService_Healthcheck(t *testing.T) { t.Errorf("Transverses.HealthCheck returned %+v, want %+v", got, want) } - testDoRequestFailure(t, "HealthCheck", client, func() error { + testNewRequestAndDoRequestFailure(t, "HealthCheck", client, func() error { _, err := client.Transverses.HealthCheck(ctx) return err }) @@ -72,7 +72,7 @@ func TestTransversesService_RecupererDevises_FR(t *testing.T) { t.Errorf("Transverses.RecupererDevises returned %+v, want %+v", got, want) } - testDoRequestFailure(t, "RecupererDevises", client, func() error { + testNewRequestAndDoRequestFailure(t, "RecupererDevises", client, func() error { _, err := client.Transverses.RecupererDevises(ctx, "") return err }) @@ -116,7 +116,7 @@ func TestTransversesService_RecupererDevises_EN(t *testing.T) { t.Errorf("Transverses.RecupererDevises returned %+v, want %+v", got, want) } - testDoRequestFailure(t, "RecupererDevises", client, func() error { + testNewRequestAndDoRequestFailure(t, "RecupererDevises", client, func() error { _, err := client.Transverses.RecupererDevises(ctx, "") return err }) @@ -152,7 +152,7 @@ func TestTransversesService_TelechargerAnnuaireDestinataire(t *testing.T) { t.Errorf("Transverses.TelechargerAnnuaireDestinataire returned %+v, want %+v", got, want) } - testDoRequestFailure(t, "TelechargerAnnuaireDestinataire", client, func() error { + testNewRequestAndDoRequestFailure(t, "TelechargerAnnuaireDestinataire", client, func() error { _, err := client.Transverses.TelechargerAnnuaireDestinataire(ctx) return err }) @@ -199,7 +199,7 @@ func TestTransversesService_RecupererModesDepot(t *testing.T) { t.Errorf("Transverses.RecupererModesDepot returned %+v, want %+v", got, want) } - testDoRequestFailure(t, "RecupererModesDepot", client, func() error { + testNewRequestAndDoRequestFailure(t, "RecupererModesDepot", client, func() error { _, err := client.Transverses.RecupererModesDepot(ctx) return err }) @@ -250,7 +250,7 @@ func TestTransversesService_RecupererPays_FR(t *testing.T) { t.Errorf("Transverses.RecupererPays returned %+v, want %+v", got, want) } - testDoRequestFailure(t, "RecupererPays", client, func() error { + testNewRequestAndDoRequestFailure(t, "RecupererPays", client, func() error { _, err := client.Transverses.RecupererPays(ctx, "") return err }) @@ -301,7 +301,7 @@ func TestTransversesService_RecupererPays_EN(t *testing.T) { t.Errorf("Transverses.RecupererPays returned %+v, want %+v", got, want) } - testDoRequestFailure(t, "RecupererPays", client, func() error { + testNewRequestAndDoRequestFailure(t, "RecupererPays", client, func() error { _, err := client.Transverses.RecupererPays(ctx, "") return err }) @@ -358,7 +358,7 @@ func TestTransversesService_RecupererMotifsRefusFactureAValider(t *testing.T) { t.Errorf("Transverses.RecupererMotifsRefusFactureAValider returned %+v, want %+v", got, want) } - testDoRequestFailure(t, "RecupererMotifsRefusFactureAValider", client, func() error { + testNewRequestAndDoRequestFailure(t, "RecupererMotifsRefusFactureAValider", client, func() error { _, err := client.Transverses.RecupererMotifsRefusFactureAValider(ctx, opt) return err }) @@ -418,7 +418,7 @@ func TestTransversesService_RecupererModesReglement(t *testing.T) { t.Errorf("Transverses.RecupererModesReglement returned %+v, want %+v", got, want) } - testDoRequestFailure(t, "RecupererModesReglement", client, func() error { + testNewRequestAndDoRequestFailure(t, "RecupererModesReglement", client, func() error { _, err := client.Transverses.RecupererModesReglement(ctx) return err }) @@ -466,7 +466,7 @@ func TestTransversesService_RecupererCadresFacturation(t *testing.T) { t.Errorf("Transverses.RecupererCadresFacturation returned %+v, want %+v", got, want) } - testDoRequestFailure(t, "RecupererCadresFacturation", client, func() error { + testNewRequestAndDoRequestFailure(t, "RecupererCadresFacturation", client, func() error { _, err := client.Transverses.RecupererCadresFacturation(ctx, "") return err }) @@ -519,7 +519,7 @@ func TestTransversesService_RecupererCoordonneesBancairesValides(t *testing.T) { t.Errorf("Transverses.RecupererCoordonneesBancairesValides returned %+v, want %+v", got, want) } - testDoRequestFailure(t, "RecupererCoordonneesBancairesValides", client, func() error { + testNewRequestAndDoRequestFailure(t, "RecupererCoordonneesBancairesValides", client, func() error { _, err := client.Transverses.RecupererCoordonneesBancairesValides(ctx, opt) return err })