52 lines
1.7 KiB
Go
52 lines
1.7 KiB
Go
package apitest
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
|
|
"git.artlef.fr/PersonalLibraryManager/internal/testutils"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
type fetchedAuthor struct {
|
|
Name string
|
|
Description string
|
|
}
|
|
|
|
func TestGetAuthor_Ok(t *testing.T) {
|
|
author := testGetAuthor(t, "1", http.StatusOK)
|
|
expectedDescription := `Jean-Patrick Manchette, né le 19 décembre 1942 à Marseille et mort le 3 juin 1995 à Paris 12e, est un écrivain français, auteur de romans policiers, critique littéraire et de cinéma, scénariste et dialoguiste de cinéma, et traducteur.
|
|
|
|
Considéré comme l'un des auteurs les plus marquants du polar français des années 1970-1980, il est également connu pour ses opinions libertaires d'extrême gauche, proches de l'Internationale situationniste. Sur la couverture de la plupart de ses ouvrages, il est crédité en tant que J.P. Manchette, ou J-P Manchette.`
|
|
assert.Equal(t, fetchedAuthor{Name: "Jean-Patrick Manchette", Description: expectedDescription}, author)
|
|
}
|
|
|
|
func TestGetAuthor_IdNotFound(t *testing.T) {
|
|
testGetAuthor(t, "46544", http.StatusNotFound)
|
|
}
|
|
|
|
func TestGetAuthor_IdNotInt(t *testing.T) {
|
|
testGetAuthor(t, "wrong", http.StatusBadRequest)
|
|
}
|
|
|
|
func testGetAuthor(t *testing.T, authorId string, status int) fetchedAuthor {
|
|
router := testutils.TestSetup()
|
|
|
|
token := testutils.ConnectDemoUser(router)
|
|
req, _ := http.NewRequest("GET", "/author/"+authorId, nil)
|
|
req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", token))
|
|
w := httptest.NewRecorder()
|
|
router.ServeHTTP(w, req)
|
|
|
|
var author fetchedAuthor
|
|
err := json.Unmarshal(w.Body.Bytes(), &author)
|
|
if err != nil {
|
|
t.Error(err)
|
|
}
|
|
assert.Equal(t, status, w.Code)
|
|
return author
|
|
}
|