Book form: can now edit an existing book
This commit is contained in:
@@ -9,7 +9,6 @@ import (
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"git.artlef.fr/bibliomane/internal/dto"
|
||||
"git.artlef.fr/bibliomane/internal/testutils"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
@@ -62,20 +61,12 @@ func TestPostBookHandler_AllFields(t *testing.T) {
|
||||
id := testPostBookHandler(t, bookJson, 200)
|
||||
createdBook := testGetBook(t, strconv.FormatUint(uint64(id), 10), http.StatusOK)
|
||||
|
||||
assert.Equal(t,
|
||||
dto.FullBookGet{
|
||||
Title: "Amerika",
|
||||
Author: "Kafka",
|
||||
AuthorID: 27,
|
||||
ISBN: "978-2-07-036803-7",
|
||||
InventaireId: "isbn:9782070368037",
|
||||
OpenLibraryId: "OL8838048M",
|
||||
Summary: "L'Amérique (Amerika en version originale allemande) ou Le Disparu (Der Verschollene, titre voulu par l'auteur et rendu au livre dans ses plus récentes éditions) est le premier roman de Franz Kafka (1883-1924).",
|
||||
Rating: 0,
|
||||
Read: false,
|
||||
CoverPath: "",
|
||||
Review: "",
|
||||
}, createdBook)
|
||||
assert.Equal(t, "Amerika", createdBook.Title)
|
||||
assert.Equal(t, "Kafka", createdBook.Author)
|
||||
assert.Equal(t, "978-2-07-036803-7", createdBook.ISBN)
|
||||
assert.Equal(t, "isbn:9782070368037", createdBook.InventaireId)
|
||||
assert.Equal(t, "OL8838048M", createdBook.OpenLibraryId)
|
||||
assert.Equal(t, "L'Amérique (Amerika en version originale allemande) ou Le Disparu (Der Verschollene, titre voulu par l'auteur et rendu au livre dans ses plus récentes éditions) est le premier roman de Franz Kafka (1883-1924).", createdBook.Summary)
|
||||
}
|
||||
|
||||
func TestPostBookHandler_TitleTooLong(t *testing.T) {
|
||||
|
||||
56
internal/apitest/put_book_test.go
Normal file
56
internal/apitest/put_book_test.go
Normal file
@@ -0,0 +1,56 @@
|
||||
package apitest
|
||||
|
||||
import (
|
||||
"net/http"
|
||||
"testing"
|
||||
|
||||
"git.artlef.fr/bibliomane/internal/testutils"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestPutBookHandler_TitleChange(t *testing.T) {
|
||||
bookId := "17"
|
||||
bookJson :=
|
||||
`{
|
||||
"title": "Le coup de pistolaid"
|
||||
}`
|
||||
testPutBook(t, bookJson, bookId, 200)
|
||||
modifiedBook := testGetBook(t, bookId, http.StatusOK)
|
||||
assert.Equal(t, "Le coup de pistolaid", modifiedBook.Title)
|
||||
}
|
||||
|
||||
func TestPutBookHandler_Author(t *testing.T) {
|
||||
bookId := "17"
|
||||
bookJson :=
|
||||
`{
|
||||
"author": "Alexander Pouchkine"
|
||||
}`
|
||||
testPutBook(t, bookJson, bookId, 200)
|
||||
modifiedBook := testGetBook(t, bookId, http.StatusOK)
|
||||
assert.Equal(t, "Alexander Pouchkine", modifiedBook.Author)
|
||||
}
|
||||
|
||||
func TestPutBookHandler_MultipleFields(t *testing.T) {
|
||||
bookId := "17"
|
||||
bookJson :=
|
||||
`{
|
||||
"title": "Le pistolet",
|
||||
"author": "Pouchkine",
|
||||
"isbn": "978-2-07-036803-7",
|
||||
"inventaireid": "isbn:9782070368037",
|
||||
"openlibraryid": "OL8838048M",
|
||||
"shortdescription": "Roman de Pouchkine",
|
||||
"summary": "En garnison dans une petite ville, un officier de l'armée impériale russe rencontre Silvio, ancien soldat et tireur exceptionnel. Celui-ci fait forte impression sur lui, jusqu'au jour où il refuse, à la suite d'un affront, de se battre en duel."
|
||||
}`
|
||||
testPutBook(t, bookJson, bookId, 200)
|
||||
modifiedBook := testGetBook(t, bookId, http.StatusOK)
|
||||
assert.Equal(t, "Le pistolet", modifiedBook.Title)
|
||||
assert.Equal(t, "Pouchkine", modifiedBook.Author)
|
||||
assert.Equal(t, "978-2-07-036803-7", modifiedBook.ISBN)
|
||||
assert.Equal(t, "OL8838048M", modifiedBook.OpenLibraryId)
|
||||
assert.Equal(t, "En garnison dans une petite ville, un officier de l'armée impériale russe rencontre Silvio, ancien soldat et tireur exceptionnel. Celui-ci fait forte impression sur lui, jusqu'au jour où il refuse, à la suite d'un affront, de se battre en duel.", modifiedBook.Summary)
|
||||
}
|
||||
|
||||
func testPutBook(t *testing.T, payload string, bookId string, expectedCode int) {
|
||||
testutils.TestBookPutCallWithDemoPayload(t, payload, bookId, expectedCode, "/ws/book/edit/"+bookId)
|
||||
}
|
||||
Reference in New Issue
Block a user