github.com/kotovmak/go-admin@v1.1.1/tests/common/role.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/plugins/admin/modules/constant"
    10  	"github.com/kotovmak/go-admin/plugins/admin/modules/form"
    11  )
    12  
    13  func roleTest(e *httpexpect.Expect, sesID *http.Cookie) {
    14  
    15  	fmt.Println()
    16  	printlnWithColor("Role", "blue")
    17  	fmt.Println("============================")
    18  
    19  	// show
    20  
    21  	printlnWithColor("show", "green")
    22  	e.GET(config.Url("/info/roles")).
    23  		WithCookie(sesID.Name, sesID.Value).
    24  		Expect().
    25  		Status(200).
    26  		Body().Contains("Administrator").Contains("Operator")
    27  
    28  	// show new form
    29  
    30  	printlnWithColor("show new form", "green")
    31  	formBody := e.GET(config.Url("/info/roles/new")).
    32  		WithCookie(sesID.Name, sesID.Value).
    33  		Expect().Status(200).Body()
    34  
    35  	token := reg.FindStringSubmatch(formBody.Raw())
    36  
    37  	// new roles tester
    38  
    39  	printlnWithColor("new roles test", "green")
    40  	res := e.POST(config.Url("/new/roles")).
    41  		WithCookie(sesID.Name, sesID.Value).
    42  		WithMultipart().
    43  		WithFormField("permission_id[]", "3").
    44  		WithForm(map[string]interface{}{
    45  			"name":           "tester",
    46  			"slug":           "tester",
    47  			form.PreviousKey: config.Url("/info/roles?__page=1&__pageSize=10&__sort=id&__sort_type=desc"),
    48  			form.TokenKey:    token[1],
    49  		}).Expect().Status(200)
    50  	res.Header("X-Pjax-Url").Contains(config.Url("/info/"))
    51  	res.Body().Contains("tester")
    52  
    53  	// show form: without id
    54  
    55  	//printlnWithColor("show form: without id", "green")
    56  	//e.GET(config.Url("/info/roles/edit")).
    57  	//	WithCookie(sesID.Name, sesID.Value).
    58  	//	Expect().Status(200).Body().Contains(errors.WrongID)
    59  
    60  	// show form
    61  
    62  	printlnWithColor("show form", "green")
    63  	formBody = e.GET(config.Url("/info/roles/edit")).
    64  		WithQuery(constant.EditPKKey, "3").
    65  		WithCookie(sesID.Name, sesID.Value).
    66  		Expect().Status(200).Body()
    67  
    68  	token = reg.FindStringSubmatch(formBody.Raw())
    69  
    70  	// edit form
    71  
    72  	printlnWithColor("edit form", "green")
    73  	res = e.POST(config.Url("/edit/roles")).
    74  		WithCookie(sesID.Name, sesID.Value).
    75  		WithMultipart().
    76  		WithFormField("permission_id[]", "3").
    77  		WithFormField("permission_id[]", "2").
    78  		WithForm(map[string]interface{}{
    79  			"name":           "tester",
    80  			"slug":           "tester",
    81  			form.PreviousKey: config.Url("/info/roles?__page=1&__pageSize=10&__sort=id&__sort_type=desc"),
    82  			form.TokenKey:    token[1],
    83  			"id":             "3",
    84  		}).Expect().Status(200)
    85  	res.Header("X-Pjax-Url").Contains(config.Url("/info/"))
    86  	res.Body().Contains("tester")
    87  
    88  	// show new form
    89  
    90  	printlnWithColor("show new form", "green")
    91  	formBody = e.GET(config.Url("/info/roles/new")).
    92  		WithCookie(sesID.Name, sesID.Value).
    93  		Expect().Status(200).Body()
    94  
    95  	token = reg.FindStringSubmatch(formBody.Raw())
    96  
    97  	// new tester2
    98  
    99  	printlnWithColor("new tester2", "green")
   100  	e.POST(config.Url("/new/roles")).
   101  		WithCookie(sesID.Name, sesID.Value).
   102  		WithMultipart().
   103  		WithFormField("permission_id[]", "3").
   104  		WithForm(map[string]interface{}{
   105  			"name":           "tester2",
   106  			"slug":           "tester2",
   107  			form.PreviousKey: config.Url("/info/roles?__page=1&__pageSize=10&__sort=id&__sort_type=desc"),
   108  			form.TokenKey:    token[1],
   109  		}).Expect().Status(200)
   110  
   111  	// delete tester2
   112  
   113  	printlnWithColor("delete roles tester2", "green")
   114  	e.POST(config.Url("/delete/roles")).
   115  		WithCookie(sesID.Name, sesID.Value).
   116  		WithMultipart().
   117  		WithFormField("id", "3").
   118  		Expect().Status(200).JSON().Object().
   119  		ValueEqual("code", 200).
   120  		ValueEqual("msg", "ok")
   121  }