github.com/kotovmak/go-admin@v1.1.1/tests/common/menu.go (about)

     1  package common
     2  
     3  import (
     4  	"fmt"
     5  	"net/http"
     6  
     7  	"github.com/gavv/httpexpect"
     8  	"github.com/kotovmak/go-admin/modules/config"
     9  	"github.com/kotovmak/go-admin/modules/language"
    10  	"github.com/kotovmak/go-admin/plugins/admin/modules/constant"
    11  	"github.com/kotovmak/go-admin/plugins/admin/modules/form"
    12  )
    13  
    14  func menuTest(e *httpexpect.Expect, sesID *http.Cookie) {
    15  
    16  	fmt.Println()
    17  	printlnWithColor("Menu", "blue")
    18  	fmt.Println("============================")
    19  
    20  	// show
    21  
    22  	printlnWithColor("show", "green")
    23  	formBody := e.GET(config.Url("/menu")).
    24  		WithCookie(sesID.Name, sesID.Value).
    25  		Expect().
    26  		Status(200).
    27  		Body().Contains(language.Get("menus manage"))
    28  
    29  	token := reg.FindStringSubmatch(formBody.Raw())
    30  
    31  	// new menu tester
    32  
    33  	printlnWithColor("new menu test", "green")
    34  	res := e.POST(config.Url("/menu/new")).
    35  		WithCookie(sesID.Name, sesID.Value).
    36  		WithMultipart().
    37  		WithFormField("roles[]", "1").
    38  		WithForm(map[string]interface{}{
    39  			"parent_id":      0,
    40  			"title":          "test menu",
    41  			"header":         "",
    42  			"icon":           "fa-angellist",
    43  			"uri":            "/example/test",
    44  			form.PreviousKey: "/admin/menu",
    45  			form.TokenKey:    token[1],
    46  		}).Expect().Status(200)
    47  	res.Header("X-Pjax-Url").Contains(config.Url("/menu"))
    48  	res.Body().Contains("test menu").Contains("/example/test")
    49  
    50  	// show form: without id
    51  
    52  	//printlnWithColor("show form: without id", "green")
    53  	//e.GET(config.Url("/menu/edit/show")).
    54  	//	WithCookie(sesID.Name, sesID.Value).
    55  	//	Expect().Status(200).Body().Contains(errors.WrongID)
    56  
    57  	// show form
    58  
    59  	printlnWithColor("show form", "green")
    60  	formBody = e.GET(config.Url("/menu/edit/show")).
    61  		WithQuery(constant.EditPKKey, "3").
    62  		WithCookie(sesID.Name, sesID.Value).
    63  		Expect().Status(200).Body()
    64  
    65  	token = reg.FindStringSubmatch(formBody.Raw())
    66  
    67  	// edit form
    68  
    69  	printlnWithColor("edit form", "green")
    70  	res = e.POST(config.Url("/menu/edit")).
    71  		WithCookie(sesID.Name, sesID.Value).
    72  		WithMultipart().
    73  		WithFormField("roles[]", "1").
    74  		WithForm(map[string]interface{}{
    75  			"parent_id":      0,
    76  			"title":          "test2 menu",
    77  			"header":         "",
    78  			"icon":           "fa-angellist",
    79  			"uri":            "/example/test",
    80  			form.PreviousKey: "/admin/menu",
    81  			form.TokenKey:    token[1],
    82  			"id":             "3",
    83  		}).Expect().Status(200)
    84  	res.Header("X-Pjax-Url").Contains(config.Url("/menu"))
    85  	res.Body().Contains("test2 menu").Contains("/example/test")
    86  
    87  	// new tester2
    88  
    89  	printlnWithColor("new tester2", "green")
    90  	e.POST(config.Url("/menu/new")).
    91  		WithCookie(sesID.Name, sesID.Value).
    92  		WithMultipart().
    93  		WithFormField("roles[]", "1").
    94  		WithForm(map[string]interface{}{
    95  			"parent_id":      0,
    96  			"title":          "test2 menu",
    97  			"header":         "",
    98  			"icon":           "fa-angellist",
    99  			"uri":            "/example/test2",
   100  			form.PreviousKey: "/admin/menu",
   101  			form.TokenKey:    token[1],
   102  		}).Expect().Status(200)
   103  
   104  	// delete tester2
   105  
   106  	printlnWithColor("delete menu tester2", "green")
   107  	e.POST(config.Url("/menu/delete")).
   108  		WithQuery("id", "9").
   109  		WithCookie(sesID.Name, sesID.Value).
   110  		WithMultipart().
   111  		Expect().Status(200).JSON().Object().
   112  		ValueEqual("code", 200).
   113  		ValueEqual("msg", "delete succeed")
   114  }