59 lines
1.8 KiB
Go
59 lines
1.8 KiB
Go
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)
|
|
}
|