package logic import ( "bytes" "encoding/json" "fmt" "fusenapi/initalize" "fusenapi/model/gmodel" "fusenapi/utils/wevent" "io" "log" "net/http" "net/smtp" "reflect" "testing" "github.com/474420502/requests" "github.com/google/uuid" "github.com/gorilla/mux" "github.com/rs/cors" "github.com/zeromicro/go-zero/core/logx" ) func TestEmailSend(t *testing.T) { // 设置发件人和收件人信息 from := "support@fusenpack.com" to := []string{"474420502@qq.com"} // to := []string{"qq474420502@gmail.com"} // to := []string{"outlook_7D27A8300A1B3F01@outlook.com"} // 设置smtp服务器地址,端口和认证信息 smtpServer := "smtp.gmail.com" auth := smtp.PlainAuth("", "support@fusenpack.com", "wfbjpdgvaozjvwah", smtpServer) var buf bytes.Buffer tpls.ExecuteTemplate(&buf, "test.tpl", map[string]any{ "CompanyName": "FusenPack", }) // msg := []byte(`Subject: Password Reset Request for Your Account; // MIME-version: 1.0; // Content-Type: text/html; charset="UTF-8"; // From: "Fusen"; // // // Password Reset for Your {{.CompanyName}} Account // // //

Dear {{.UserName}},

//

We have received your request to reset the password for your {{.CompanyName}} account.

//

To proceed with the password reset, please click the button below to open the Reset Password page:

//
// // Reset Password // //
//

Please note that this password reset confirmation link will expire in 60 minutes. If you have any further questions, feel free to reach out to us.

//

Regards,

//

{{.SenderName}}
// {{.SenderTitle}}
// {{.CompanyName}}

// // `) msg := buf.Bytes() // 发送邮件 err := smtp.SendMail(smtpServer+":587", auth, from, to, msg) if err != nil { log.Fatal(err) } } func TestPost(t *testing.T) { r := mux.NewRouter() r.HandleFunc("/aaa", func(w http.ResponseWriter, r *http.Request) { d, _ := io.ReadAll(r.Body) log.Println(string(d)) }).Methods("POST") handler := cors.Default().Handler(r) log.Println("Server listening on :2223") log.Fatal(http.ListenAndServe(":2223", handler)) } func TestEmailTpl(t *testing.T) { data := map[string]string{ "CompanyName": "companyName", "ConfirmationLink": "confirmationLink", "SenderName": "senderName", "SenderTitle": "senderTitle", } var result bytes.Buffer err := tpls.ExecuteTemplate(&result, "email_register.tpl", data) if err != nil { log.Fatal(err) } log.Println(string(result.String())) } func TestSender(t *testing.T) { traceId := uuid.NewString() event := wevent.NewWebsocketEventSuccess(wevent.UserEmailRegister, traceId) event.Data = wevent.DataEmailRegister{ JwtToken: traceId, } tp := requests.Post(fmt.Sprintf("%s/api/websocket/common_notify", "https://server.fusen.3718.cn:9900")) tp.SetBodyJson(requests.M{ "wid": "tGyMYX9EldtsPLZTyT6PxrRgEV615CQGEiu9Sb1XrjZ4kpTjI46sQyh7kYfVlgN9uR5Uw4KDF+S62IknmaRgSMdee1QHVtCv+VEKrMF76snR04zS1ZbWZCgX5Lv2xgHz/bZBWwJF/9u6YTy2/FetGg==", "data": event, }) wresp, err := tp.Execute() if err != nil { logx.Error(err, "traceId") return } result := wresp.Json() if result.Get("code").Int() != 200 { logx.Error(result.Get("message")) return } log.Println(result) } func TestSql(t *testing.T) { type MetaData struct { Key string `gorm:"key" json:"key"` Test string `gorm:"test" json:"test"` } conn := initalize.InitMysql("fsreaderwriter:XErSYmLELKMnf3Dh@tcp(fusen.cdmigcvz3rle.us-east-2.rds.amazonaws.com:3306)/fusen") log.Println() log.Println(conn.NamingStrategy.TableName(reflect.TypeOf(gmodel.FsUser{}).Name())) updatesql := `UPDATE %s SET metadata = CASE WHEN metadata IS NULL THEN ? ELSE JSON_MERGE_PATCH(metadata, ?) END WHERE id = ?;` metadata := &MetaData{ Key: "mkey", Test: "testv", } data, err := json.Marshal(metadata) if err != nil { logx.Error(err) panic(err) } updatesql = fmt.Sprintf(updatesql, "fusen.fs_change_code") log.Println(updatesql) err = conn.Exec(updatesql, data, data, 6).Error if err != nil { logx.Error(err) panic(err) } }