47 lines
1.2 KiB
Go
47 lines
1.2 KiB
Go
package repository
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"infinite-canvas/backend/internal/kernel"
|
|
"infinite-canvas/backend/internal/model"
|
|
|
|
"gorm.io/driver/sqlite"
|
|
"gorm.io/gorm"
|
|
"gorm.io/gorm/logger"
|
|
)
|
|
|
|
func TestPublicSkillCategoryCounts(t *testing.T) {
|
|
db, err := gorm.Open(sqlite.Open("file:"+kernel.NewID()+"?mode=memory&cache=shared"), &gorm.Config{Logger: logger.Default.LogMode(logger.Silent)})
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
sqlDB, err := db.DB()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
defer sqlDB.Close()
|
|
if err := db.AutoMigrate(&model.Skill{}); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
skills := []model.Skill{
|
|
{ID: "drama-1", Status: 1, Tag: "drama"},
|
|
{ID: "drama-2", Status: 1, Tag: "drama"},
|
|
{ID: "private-drama", Status: 1, IsPrivate: true, Tag: "drama"},
|
|
{ID: "disabled-ecommerce", Status: 0, Tag: "ecommerce"},
|
|
{ID: "ecommerce-1", Status: 1, Tag: "ecommerce"},
|
|
}
|
|
if err := db.Create(&skills).Error; err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
counts, err := New(db).PublicSkillCategoryCounts()
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if counts["drama"] != 2 || counts["ecommerce"] != 1 {
|
|
t.Fatalf("public skill category counts = %#v, want drama=2 and ecommerce=1", counts)
|
|
}
|
|
}
|