package client import ( "github.com/ouxuanserver/osmanthuswine/src/core" . "github.com/smartystreets/goconvey/convey" "hudongzhuanjia/libs/jwt" "hudongzhuanjia/models" "hudongzhuanjia/test" "hudongzhuanjia/utils/code" "hudongzhuanjia/utils/define" "net/http" "testing" ) func TestEntryLogin(t *testing.T) { type Data struct { People *models.OrderEntryPerson `json:"people"` } type Result struct { core.ResponseData Data Data `json:"data"` } conf := test.GetConfig() Convey("测试录入人员登录", t, func() { path := test.ApiUrl("PcClient/Client/UserCtl/entryLogin") // 正确登录 param := map[string]interface{}{ "account": conf.EntryAccount, "password": conf.EntryPwd, "activity_id": conf.ActivityId, } resp, err := test.Api("").Get(path, param) // 并不需要token So(err, ShouldBeNil) // 检测是否请求出错 So(resp.StatusCode(), ShouldEqual, http.StatusOK) // 检测请求连接是否正确 res := new(Result) err = resp.Json(res) So(err, ShouldBeNil) // 检测json 解析是否正确 So(res.Code, ShouldEqual, 0) // 返回code是否为0 So(res.Data.People, ShouldNotBeNil, nil) // 检测返回数据是否为空 So(res.Data.People.ActivityId, ShouldEqual, conf.ActivityId) So(res.Data.People.Account, ShouldEqual, conf.EntryAccount) So(res.Data.People.Password, ShouldEqual, conf.EntryPwd) So(res.Data.People.Token, ShouldNotBeEmpty) // 校验token claims, err := jwt.ParseAccessToken(res.Data.People.Token) So(err, ShouldNotBeNil) So(claims.ActivityId, ShouldEqual, conf.ActivityId) So(claims.AccountType, ShouldEqual, define.TYPE_ENTRY) // 登录失败的场景 // 录入人员不存在 param = map[string]interface{}{ "account": "tommy", "password": conf.EntryPwd, "activity_id": conf.ActivityId, } resp, err = test.Api("").Get(path) So(err, ShouldBeNil) So(resp.StatusCode(), ShouldEqual, http.StatusOK) res = new(Result) err = resp.Json(res) So(err, ShouldBeNil) So(res.Code, ShouldEqual, code.MSG_ENTRYPEOPLE_NOT_EXIST) // 互动不存在 param = map[string]interface{}{ "account": conf.EntryAccount, "password": conf.EntryPwd, "activity_id": 0, } resp, err = test.Api("").Get(path) So(err, ShouldBeNil) So(resp.StatusCode(), ShouldEqual, http.StatusOK) res = new(Result) err = resp.Json(res) So(err, ShouldBeNil) So(res.Code, ShouldEqual, code.MSG_ACTIVITY_NOT_EXIST) // done }) }