ifms_go/test/menu_test.go

59 lines
1.8 KiB
Go
Raw Normal View History

2025-06-10 17:50:46 +08:00
package test
import (
"net/http"
"testing"
"ifms/internal/mods/rbac/schema"
"ifms/pkg/util"
"github.com/stretchr/testify/assert"
)
func TestMenu(t *testing.T) {
e := tester(t)
menuFormItem := schema.MenuForm{
Code: "menu",
Name: "Menu management",
Description: "Menu management",
Sequence: 9,
Type: "page",
Path: "/system/menu",
Properties: `{"icon":"menu"}`,
Status: schema.MenuStatusEnabled,
}
var menu schema.Menu
e.POST(baseAPI + "/menus").WithJSON(menuFormItem).
Expect().Status(http.StatusOK).JSON().Decode(&util.ResponseResult{Data: &menu})
assert := assert.New(t)
assert.NotEmpty(menu.ID)
assert.Equal(menuFormItem.Code, menu.Code)
assert.Equal(menuFormItem.Name, menu.Name)
assert.Equal(menuFormItem.Description, menu.Description)
assert.Equal(menuFormItem.Sequence, menu.Sequence)
assert.Equal(menuFormItem.Type, menu.Type)
assert.Equal(menuFormItem.Path, menu.Path)
assert.Equal(menuFormItem.Properties, menu.Properties)
assert.Equal(menuFormItem.Status, menu.Status)
var menus schema.Menus
e.GET(baseAPI + "/menus").Expect().Status(http.StatusOK).JSON().Decode(&util.ResponseResult{Data: &menus})
assert.GreaterOrEqual(len(menus), 1)
newName := "Menu management 1"
newStatus := schema.MenuStatusDisabled
menu.Name = newName
menu.Status = newStatus
e.PUT(baseAPI + "/menus/" + menu.ID).WithJSON(menu).Expect().Status(http.StatusOK)
var getMenu schema.Menu
e.GET(baseAPI + "/menus/" + menu.ID).Expect().Status(http.StatusOK).JSON().Decode(&util.ResponseResult{Data: &getMenu})
assert.Equal(newName, getMenu.Name)
assert.Equal(newStatus, getMenu.Status)
e.DELETE(baseAPI + "/menus/" + menu.ID).Expect().Status(http.StatusOK)
e.GET(baseAPI + "/menus/" + menu.ID).Expect().Status(http.StatusNotFound)
}