diff --git a/models/user_test.go b/models/user_test.go index 8629995..986899c 100644 --- a/models/user_test.go +++ b/models/user_test.go @@ -43,6 +43,12 @@ func TestGetUserByID(t *testing.T) { Policies: "[1]", PolicyList: []uint{1}, }, + Policy: Policy{ + Model: gorm.Model{ + ID: 1, + }, + Name: "默认上传策略", + }, }, user) //未找到用户时 diff --git a/routers/router_test.go b/routers/router_test.go index 9d21abc..c68ffae 100644 --- a/routers/router_test.go +++ b/routers/router_test.go @@ -86,6 +86,7 @@ func TestUserSession(t *testing.T) { testCases := []struct { settingRows *sqlmock.Rows userRows *sqlmock.Rows + policyRows *sqlmock.Rows reqBody string expected interface{} }{ @@ -94,7 +95,8 @@ func TestUserSession(t *testing.T) { settingRows: sqlmock.NewRows([]string{"name", "value", "type"}). AddRow("login_captcha", "0", "login"), userRows: sqlmock.NewRows([]string{"email", "nick", "password", "options"}). - AddRow("admin@cloudreve.org", "admin", "CKLmDKa1C9SD64vU:76adadd4fd4bad86959155f6f7bc8993c94e7adf", "{}"), + AddRow("admin@cloudreve.org", "admin", "CKLmDKa1C9SD64vU:76adadd4fd4bad86959155f6f7bc8993c94e7adf", "{}"), policyRows: sqlmock.NewRows([]string{"name", "type", "options"}). + AddRow("默认上传策略", "local", "{\"op_name\":\"123\"}"), reqBody: `{"userName":"admin@cloudreve.org","captchaCode":"captchaCode","Password":"admin"}`, expected: serializer.BuildUserResponse(model.User{ Email: "admin@cloudreve.org", @@ -107,6 +109,8 @@ func TestUserSession(t *testing.T) { AddRow("login_captcha", "1", "login"), userRows: sqlmock.NewRows([]string{"email", "nick", "password", "options"}). AddRow("admin@cloudreve.org", "admin", "CKLmDKa1C9SD64vU:76adadd4fd4bad86959155f6f7bc8993c94e7adf", "{}"), + policyRows: sqlmock.NewRows([]string{"name", "type", "options"}). + AddRow("默认上传策略", "local", "{\"op_name\":\"123\"}"), reqBody: `{"userName":"admin@cloudreve.org","captchaCode":"captchaCode","Password":"admin"}`, expected: serializer.ParamErr("验证码错误", nil), }, @@ -116,6 +120,8 @@ func TestUserSession(t *testing.T) { AddRow("login_captcha", "0", "login"), userRows: sqlmock.NewRows([]string{"email", "nick", "password", "options"}). AddRow("admin@cloudreve.org", "admin", "CKLmDKa1C9SD64vU:76adadd4fd4bad86959155f6f7bc8993c94e7adf", "{}"), + policyRows: sqlmock.NewRows([]string{"name", "type", "options"}). + AddRow("默认上传策略", "local", "{\"op_name\":\"123\"}"), reqBody: `{"userName":"admin@cloudreve.org","captchaCode":"captchaCode","Password":"admin123"}`, expected: serializer.Err(401, "用户邮箱或密码错误", nil), }, @@ -130,6 +136,8 @@ func TestUserSession(t *testing.T) { AddRow("login_captcha", "0", "login"), userRows: sqlmock.NewRows([]string{"email", "nick", "password", "options", "status"}). AddRow("admin@cloudreve.org", "admin", "CKLmDKa1C9SD64vU:76adadd4fd4bad86959155f6f7bc8993c94e7adf", "{}", model.Baned), + policyRows: sqlmock.NewRows([]string{"name", "type", "options"}). + AddRow("默认上传策略", "local", "{\"op_name\":\"123\"}"), reqBody: `{"userName":"admin@cloudreve.org","captchaCode":"captchaCode","Password":"admin"}`, expected: serializer.Err(403, "该账号已被封禁", nil), }, @@ -139,6 +147,8 @@ func TestUserSession(t *testing.T) { AddRow("login_captcha", "0", "login"), userRows: sqlmock.NewRows([]string{"email", "nick", "password", "options", "status"}). AddRow("admin@cloudreve.org", "admin", "CKLmDKa1C9SD64vU:76adadd4fd4bad86959155f6f7bc8993c94e7adf", "{}", model.NotActivicated), + policyRows: sqlmock.NewRows([]string{"name", "type", "options"}). + AddRow("默认上传策略", "local", "{\"op_name\":\"123\"}"), reqBody: `{"userName":"admin@cloudreve.org","captchaCode":"captchaCode","Password":"admin"}`, expected: serializer.Err(403, "该账号未激活", nil), }, @@ -151,6 +161,9 @@ func TestUserSession(t *testing.T) { if testCase.userRows != nil { mock.ExpectQuery("^SELECT (.+)").WillReturnRows(testCase.userRows) } + if testCase.policyRows != nil { + mock.ExpectQuery("^SELECT \\* FROM `(.+)` WHERE `(.+)`\\.`deleted_at` IS NULL AND \\(\\(`policies`.`id` = 1\\)\\)(.+)$").WillReturnRows(testCase.policyRows) + } req, _ := http.NewRequest( "POST", "/Api/V3/User/Session",