feat(error_reporting): integrate error reporting

This commit is contained in:
hexxa 2021-12-30 10:33:13 +08:00 committed by Hexxa
parent 9a7cfcb097
commit 711a3a874f
9 changed files with 86 additions and 57 deletions

View file

@ -304,7 +304,7 @@ func initHandlers(router *gin.Engine, cfg gocfg.ICfg, deps *depidx.Deps) (*gin.E
settingsAPI.OPTIONS("/health", settingsSvc.Health)
settingsAPI.GET("/client", settingsSvc.GetClientCfg)
settingsAPI.PATCH("/client", settingsSvc.SetClientCfg)
settingsAPI.POST("/errors", settingsSvc.ReportError)
settingsAPI.POST("/errors", settingsSvc.ReportErrors)
return router, nil
}

View file

@ -126,15 +126,22 @@ func TestSettingsHandlers(t *testing.T) {
}
})
t.Run("ReportError", func(t *testing.T) {
t.Run("ReportErrors", func(t *testing.T) {
settingsCl := client.NewSettingsClient(addr)
reportContent := `{state: "{}", error: "empty state"}`
report := &settings.ClientErrorReport{
Report: reportContent,
Version: "0.0.1",
reports := &settings.ClientErrorReports{
Reports: []*settings.ClientErrorReport{
&settings.ClientErrorReport{
Report: `{state: "{}", error: "empty state1"}`,
Version: "0.0.1",
},
&settings.ClientErrorReport{
Report: `{state: "{}", error: "empty state2"}`,
Version: "0.0.1",
},
},
}
reportResp, _, errs := settingsCl.ReportError(report, adminToken)
reportResp, _, errs := settingsCl.ReportErrors(reports, adminToken)
if len(errs) > 0 {
t.Fatal(errs)
} else if reportResp.StatusCode != 200 {
@ -154,7 +161,10 @@ func TestSettingsHandlers(t *testing.T) {
if err != nil {
t.Fatal(err)
}
if !strings.Contains(string(content), `"msg":"version:0.0.1,error:{state: \"{}\", error: \"empty state\"}"`) {
if !strings.Contains(string(content), `"msg":"version:0.0.1,error:{state: \"{}\", error: \"empty state1\"}"`) {
t.Fatalf("log does not contain error: %s", content)
}
if !strings.Contains(string(content), `"msg":"version:0.0.1,error:{state: \"{}\", error: \"empty state2\"}"`) {
t.Fatalf("log does not contain error: %s", content)
}
})