chore: update book enabled status wiring
This commit is contained in:
@@ -13,12 +13,12 @@ import (
|
||||
type BookAuthorApi struct{}
|
||||
|
||||
func (a *BookAuthorApi) CreateBookAuthor(c *gin.Context) {
|
||||
var item book.BookAuthor
|
||||
if err := c.ShouldBindJSON(&item); err != nil {
|
||||
var req bookReq.CreateBookAuthorReq
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
response.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
if err := bookAuthorService.CreateBookAuthor(item); err != nil {
|
||||
if err := bookAuthorService.CreateBookAuthor(req.ToModel()); err != nil {
|
||||
global.GVA_LOG.Error("创建失败!", zap.Error(err))
|
||||
response.FailWithMessage("创建失败", c)
|
||||
return
|
||||
|
||||
@@ -13,12 +13,12 @@ import (
|
||||
type BookChapterApi struct{}
|
||||
|
||||
func (a *BookChapterApi) CreateBookChapter(c *gin.Context) {
|
||||
var item book.BookChapter
|
||||
if err := c.ShouldBindJSON(&item); err != nil {
|
||||
var req bookReq.CreateBookChapterReq
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
response.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
if err := bookChapterService.CreateBookChapter(item); err != nil {
|
||||
if err := bookChapterService.CreateBookChapter(req.ToModel()); err != nil {
|
||||
global.GVA_LOG.Error("创建失败!", zap.Error(err))
|
||||
response.FailWithMessage("创建失败", c)
|
||||
return
|
||||
|
||||
@@ -13,12 +13,12 @@ import (
|
||||
type BookSeriesApi struct{}
|
||||
|
||||
func (a *BookSeriesApi) CreateBookSeries(c *gin.Context) {
|
||||
var item book.BookSeries
|
||||
if err := c.ShouldBindJSON(&item); err != nil {
|
||||
var req bookReq.CreateBookSeriesReq
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
response.FailWithMessage(err.Error(), c)
|
||||
return
|
||||
}
|
||||
if err := bookSeriesService.CreateBookSeries(item); err != nil {
|
||||
if err := bookSeriesService.CreateBookSeries(req.ToModel()); err != nil {
|
||||
global.GVA_LOG.Error("创建失败!", zap.Error(err))
|
||||
response.FailWithMessage("创建失败", c)
|
||||
return
|
||||
|
||||
76
server/api/v1/book/is_enabled_create_test.go
Normal file
76
server/api/v1/book/is_enabled_create_test.go
Normal file
@@ -0,0 +1,76 @@
|
||||
package book
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"net/http"
|
||||
"net/http/httptest"
|
||||
"testing"
|
||||
|
||||
"github.com/flipped-aurora/gin-vue-admin/server/global"
|
||||
"github.com/flipped-aurora/gin-vue-admin/server/model/book"
|
||||
"github.com/gin-gonic/gin"
|
||||
"github.com/glebarez/sqlite"
|
||||
"github.com/stretchr/testify/require"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
func setupIsEnabledCreateAPITestDB(t *testing.T) {
|
||||
t.Helper()
|
||||
|
||||
db, err := gorm.Open(sqlite.Open(":memory:"), &gorm.Config{})
|
||||
require.NoError(t, err)
|
||||
require.NoError(t, db.AutoMigrate(&book.BookAuthor{}, &book.BookSeries{}, &book.BookChapter{}))
|
||||
|
||||
global.GVA_DB = db
|
||||
t.Cleanup(func() {
|
||||
global.GVA_DB = nil
|
||||
})
|
||||
}
|
||||
|
||||
func postJSON(t *testing.T, body string, handler gin.HandlerFunc) {
|
||||
t.Helper()
|
||||
|
||||
gin.SetMode(gin.TestMode)
|
||||
w := httptest.NewRecorder()
|
||||
ctx, _ := gin.CreateTestContext(w)
|
||||
ctx.Request = httptest.NewRequest(http.MethodPost, "/book/create", bytes.NewBufferString(body))
|
||||
ctx.Request.Header.Set("Content-Type", "application/json")
|
||||
|
||||
handler(ctx)
|
||||
require.Equal(t, http.StatusOK, w.Code)
|
||||
}
|
||||
|
||||
func TestCreateAPIDefaultsIsEnabledTrueAndPersistsExplicitFalse(t *testing.T) {
|
||||
setupIsEnabledCreateAPITestDB(t)
|
||||
|
||||
postJSON(t, `{"name":"默认启用作者"}`, (&BookAuthorApi{}).CreateBookAuthor)
|
||||
postJSON(t, `{"name":"显式禁用作者","isEnabled":false}`, (&BookAuthorApi{}).CreateBookAuthor)
|
||||
postJSON(t, `{"name":"默认启用系列"}`, (&BookSeriesApi{}).CreateBookSeries)
|
||||
postJSON(t, `{"name":"显式禁用系列","isEnabled":false}`, (&BookSeriesApi{}).CreateBookSeries)
|
||||
postJSON(t, `{"bookId":1,"title":"默认启用章节","chapterNo":1,"contentFileUrl":"chapters/default.txt"}`, (&BookChapterApi{}).CreateBookChapter)
|
||||
postJSON(t, `{"bookId":1,"title":"显式禁用章节","chapterNo":2,"contentFileUrl":"chapters/disabled.txt","isEnabled":false}`, (&BookChapterApi{}).CreateBookChapter)
|
||||
|
||||
var defaultAuthor book.BookAuthor
|
||||
require.NoError(t, global.GVA_DB.Where("name = ?", "默认启用作者").First(&defaultAuthor).Error)
|
||||
require.True(t, defaultAuthor.IsEnabled)
|
||||
|
||||
var disabledAuthor book.BookAuthor
|
||||
require.NoError(t, global.GVA_DB.Where("name = ?", "显式禁用作者").First(&disabledAuthor).Error)
|
||||
require.False(t, disabledAuthor.IsEnabled)
|
||||
|
||||
var defaultSeries book.BookSeries
|
||||
require.NoError(t, global.GVA_DB.Where("name = ?", "默认启用系列").First(&defaultSeries).Error)
|
||||
require.True(t, defaultSeries.IsEnabled)
|
||||
|
||||
var disabledSeries book.BookSeries
|
||||
require.NoError(t, global.GVA_DB.Where("name = ?", "显式禁用系列").First(&disabledSeries).Error)
|
||||
require.False(t, disabledSeries.IsEnabled)
|
||||
|
||||
var defaultChapter book.BookChapter
|
||||
require.NoError(t, global.GVA_DB.Where("title = ?", "默认启用章节").First(&defaultChapter).Error)
|
||||
require.True(t, defaultChapter.IsEnabled)
|
||||
|
||||
var disabledChapter book.BookChapter
|
||||
require.NoError(t, global.GVA_DB.Where("title = ?", "显式禁用章节").First(&disabledChapter).Error)
|
||||
require.False(t, disabledChapter.IsEnabled)
|
||||
}
|
||||
Reference in New Issue
Block a user