From 7fca267e8bde004e2de8eeffed26045da93504fa Mon Sep 17 00:00:00 2001 From: Umputun Date: Sun, 4 Feb 2018 16:51:27 -0600 Subject: [PATCH] test for masked comments --- app/rest/admin.go | 2 +- app/rest/admin_test.go | 22 ++++++++++++++++++++-- app/rest/server.go | 6 +++--- 3 files changed, 24 insertions(+), 6 deletions(-) diff --git a/app/rest/admin.go b/app/rest/admin.go index 013540ed..11627d41 100644 --- a/app/rest/admin.go +++ b/app/rest/admin.go @@ -50,7 +50,7 @@ func (a *admin) deleteCommentCtrl(w http.ResponseWriter, r *http.Request) { } a.cache.Flush() render.Status(r, http.StatusOK) - render.JSON(w, r, JSON{"id": id, "loc": locator}) + render.JSON(w, r, JSON{"id": id, "locator": locator}) } // PUT /user/{userid}?site=side-id&block=1 - block or unblock user diff --git a/app/rest/admin_test.go b/app/rest/admin_test.go index 5030d606..96fb00da 100644 --- a/app/rest/admin_test.go +++ b/app/rest/admin_test.go @@ -88,10 +88,20 @@ func TestAdmin_Block(t *testing.T) { assert.NotNil(t, srv) defer cleanup(srv) + c1 := store.Comment{Text: "test test #1", + Locator: store.Locator{SiteID: "radio-t", URL: "https://radio-t.com/blah"}, User: store.User{Name: "user1 name", ID: "user1"}} + c2 := store.Comment{Text: "test test #2", ParentID: "p1", + Locator: store.Locator{SiteID: "radio-t", URL: "https://radio-t.com/blah"}, User: store.User{Name: "user2", ID: "user2"}} + + _, err := srv.DataService.Create(c1) + assert.Nil(t, err) + _, err = srv.DataService.Create(c2) + assert.Nil(t, err) + block := func(val int) (code int, body []byte) { client := http.Client{} req, err := http.NewRequest(http.MethodPut, - fmt.Sprintf("http://127.0.0.1:%d/api/v1/admin/user/%s?site=radio-t&url=https://radio-t.com/blah&block=%d", + fmt.Sprintf("http://127.0.0.1:%d/api/v1/admin/user/%s?site=radio-t&block=%d", port, "user1", val), nil) assert.Nil(t, err) resp, err := client.Do(req) @@ -105,12 +115,20 @@ func TestAdmin_Block(t *testing.T) { code, body := block(1) require.Equal(t, 200, code) j := JSON{} - err := json.Unmarshal(body, &j) + err = json.Unmarshal(body, &j) assert.Nil(t, err) assert.Equal(t, "user1", j["user_id"]) assert.Equal(t, true, j["block"]) assert.Equal(t, "radio-t", j["site_id"]) + res, code := get(t, fmt.Sprintf("http://127.0.0.1:%d/api/v1/find?site=radio-t&url=https://radio-t.com/blah&sort=+time", port)) + assert.Equal(t, 200, code) + comments := []store.Comment{} + err = json.Unmarshal([]byte(res), &comments) + assert.Nil(t, err) + assert.Equal(t, 2, len(comments), "should have 2 comments") + assert.Equal(t, "this comment was deleted", comments[0].Text) + code, body = block(-1) require.Equal(t, 200, code) err = json.Unmarshal(body, &j) diff --git a/app/rest/server.go b/app/rest/server.go index 07b08ebb..c31ae355 100644 --- a/app/rest/server.go +++ b/app/rest/server.go @@ -222,13 +222,13 @@ func (s *Server) findCommentsCtrl(w http.ResponseWriter, r *http.Request) { if e != nil { return nil, e } - comments = s.mod.maskBlockedUsers(comments) + maskedComments := s.mod.maskBlockedUsers(comments) var b []byte switch r.URL.Query().Get("format") { case "tree": - b, e = encodeJSONWithHTML(format.MakeTree(comments, r.URL.Query().Get("sort"))) + b, e = encodeJSONWithHTML(format.MakeTree(maskedComments, r.URL.Query().Get("sort"))) default: - b, e = encodeJSONWithHTML(comments) + b, e = encodeJSONWithHTML(maskedComments) } return b, e })