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