Add basic author form

This commit is contained in:
2025-11-25 14:14:24 +01:00
parent 3cbe9f909e
commit 624dfe0faa
10 changed files with 138 additions and 3 deletions

View File

@@ -0,0 +1,51 @@
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
}