fix: 修复菜单接口关联字段映射 (#71)
This commit is contained in:
@@ -19,7 +19,7 @@ type SysMenu struct {
|
||||
Sort int `json:"sort" gorm:"size:4;"`
|
||||
Visible string `json:"visible" gorm:"size:1;"`
|
||||
IsFrame string `json:"isFrame" gorm:"size:1;DEFAULT:0;"`
|
||||
SysApi []SysApi `json:"sysApi" gorm:"many2many:sys_menu_api_rule"`
|
||||
SysApi []SysApi `json:"sysApi" gorm:"many2many:sys_menu_api_rule;foreignKey:MenuId;joinForeignKey:menu_id;references:Id;joinReferences:sys_api_id"`
|
||||
Apis []int `json:"apis" gorm:"-"`
|
||||
DataScope string `json:"dataScope" gorm:"-"`
|
||||
Params string `json:"params" gorm:"-"`
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
adminSDKService "github.com/go-admin-team/go-admin-core/sdk/service"
|
||||
"gorm.io/driver/sqlite"
|
||||
"gorm.io/gorm"
|
||||
|
||||
"git.ilapage.cn/OPC/chorus/admin/app/admin/models"
|
||||
"git.ilapage.cn/OPC/chorus/admin/app/admin/service/dto"
|
||||
)
|
||||
|
||||
func TestSysMenuGetPagePreloadsAPIsUsingMigrationJoinColumns(t *testing.T) {
|
||||
db, err := gorm.Open(sqlite.Open("file:"+t.Name()+"?mode=memory&cache=shared"), &gorm.Config{})
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
statements := []string{
|
||||
`CREATE TABLE sys_menu (menu_id INTEGER PRIMARY KEY, title TEXT, sort INTEGER, parent_id INTEGER, deleted_at DATETIME)`,
|
||||
`CREATE TABLE sys_api (id INTEGER PRIMARY KEY, title TEXT, deleted_at DATETIME)`,
|
||||
`CREATE TABLE sys_menu_api_rule (menu_id INTEGER NOT NULL, sys_api_id INTEGER NOT NULL, PRIMARY KEY (menu_id, sys_api_id))`,
|
||||
`INSERT INTO sys_menu (menu_id, title, sort, parent_id) VALUES (1, '菜单结构', 1, 0)`,
|
||||
`INSERT INTO sys_api (id, title) VALUES (7, '菜单列表')`,
|
||||
`INSERT INTO sys_menu_api_rule (menu_id, sys_api_id) VALUES (1, 7)`,
|
||||
}
|
||||
for _, statement := range statements {
|
||||
if err := db.Exec(statement).Error; err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
menuService := SysMenu{Service: adminSDKService.Service{Orm: db}}
|
||||
var menus []models.SysMenu
|
||||
menuService.GetPage(&dto.SysMenuGetPageReq{}, &menus)
|
||||
if menuService.Error != nil {
|
||||
t.Fatalf("get menu page: %v", menuService.Error)
|
||||
}
|
||||
if len(menus) != 1 || len(menus[0].SysApi) != 1 || menus[0].SysApi[0].Id != 7 {
|
||||
t.Fatalf("menus = %#v", menus)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user