51 lines
1.6 KiB
Go
51 lines
1.6 KiB
Go
package book
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/flipped-aurora/gin-vue-admin/server/global"
|
|
"github.com/flipped-aurora/gin-vue-admin/server/model/book"
|
|
"github.com/glebarez/sqlite"
|
|
"github.com/stretchr/testify/require"
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
func setupIsEnabledCreateTestDB(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 TestCreateIsEnabledFalsePersistsForEnabledModels(t *testing.T) {
|
|
setupIsEnabledCreateTestDB(t)
|
|
|
|
require.NoError(t, (&BookAuthorService{}).CreateBookAuthor(book.BookAuthor{Name: "禁用作者", IsEnabled: false}))
|
|
require.NoError(t, (&BookSeriesService{}).CreateBookSeries(book.BookSeries{Name: "禁用系列", IsEnabled: false}))
|
|
require.NoError(t, (&BookChapterService{}).CreateBookChapter(book.BookChapter{
|
|
BookID: 1,
|
|
Title: "禁用章节",
|
|
ChapterNo: 1,
|
|
ContentFileUrl: "chapters/disabled.txt",
|
|
IsEnabled: false,
|
|
}))
|
|
|
|
var author book.BookAuthor
|
|
require.NoError(t, global.GVA_DB.Where("name = ?", "禁用作者").First(&author).Error)
|
|
require.False(t, author.IsEnabled)
|
|
|
|
var series book.BookSeries
|
|
require.NoError(t, global.GVA_DB.Where("name = ?", "禁用系列").First(&series).Error)
|
|
require.False(t, series.IsEnabled)
|
|
|
|
var chapter book.BookChapter
|
|
require.NoError(t, global.GVA_DB.Where("title = ?", "禁用章节").First(&chapter).Error)
|
|
require.False(t, chapter.IsEnabled)
|
|
}
|