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) }