package main import ( "fmt" "log" "net/http" "net/http/httptest" "strings" "testing" "git.artlef.fr/PersonalLibraryManager/internal/testutils" "github.com/stretchr/testify/assert" ) func TestPostUserBookHandler_Ok(t *testing.T) { userBookJson := `{ "bookId": 6 }` testPostUserBookHandler(t, userBookJson, http.StatusOK) } func TestPostUserBookHandler_IDDoesNotExist(t *testing.T) { userBookJson := `{ "bookId": 46546 }` testPostUserBookHandler(t, userBookJson, http.StatusBadRequest) } func testPostUserBookHandler(t *testing.T, userBookJson string, expectedCode int) { router := testutils.TestSetup() w := httptest.NewRecorder() token := testutils.ConnectDemo2User(router) req, _ := http.NewRequest("POST", "/userbook", strings.NewReader(string(userBookJson))) req.Header.Add("Authorization", fmt.Sprintf("Bearer %s", token)) router.ServeHTTP(w, req) log.Printf("%s\n", w.Body.String()) assert.Equal(t, expectedCode, w.Code) }