From b3cbf47e6fb62837885dfd44af6c7ff57ecaf3dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toma=C5=BE=20Jerman?= Date: Thu, 31 Oct 2019 19:15:33 +0100 Subject: [PATCH] Fix tree ordering --- compose/service/page.go | 1 + tests/compose/page_test.go | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/compose/service/page.go b/compose/service/page.go index e3be9f809..6935745ac 100644 --- a/compose/service/page.go +++ b/compose/service/page.go @@ -152,6 +152,7 @@ func (svc page) Tree(namespaceID uint64) (pages types.PageSet, err error) { filter = types.PageFilter{ NamespaceID: namespaceID, IsReadable: svc.ac.FilterReadablePages(svc.ctx), + Sort: "weight ASC", } ) diff --git a/tests/compose/page_test.go b/tests/compose/page_test.go index 9a9da7562..c34c03af1 100644 --- a/tests/compose/page_test.go +++ b/tests/compose/page_test.go @@ -27,6 +27,15 @@ func (h helper) repoMakePage(ns *types.Namespace, name string) *types.Page { return m } +func (h helper) repoMakeWeightedPage(ns *types.Namespace, name string, weight int) *types.Page { + m, err := h. + repoPage(). + Create(&types.Page{Title: name, NamespaceID: ns.ID, Weight: weight}) + h.a.NoError(err) + + return m +} + func TestPageRead(t *testing.T) { h := newHelper(t) @@ -179,3 +188,26 @@ func TestPageDelete(t *testing.T) { m, err := h.repoPage().FindByID(ns.ID, m.ID) h.a.Error(err, "compose.repository.PageNotFound") } + +func TestPageTreeRead(t *testing.T) { + h := newHelper(t) + + h.allow(types.NamespacePermissionResource.AppendWildcard(), "read") + h.allow(types.PagePermissionResource.AppendWildcard(), "read") + ns := h.repoMakeNamespace("some-namespace") + h.repoMakeWeightedPage(ns, "p1", 1) + h.repoMakeWeightedPage(ns, "p4", 4) + h.repoMakeWeightedPage(ns, "p3", 3) + h.repoMakeWeightedPage(ns, "p2", 2) + + h.apiInit(). + Get(fmt.Sprintf("/namespace/%d/page/tree", ns.ID)). + Expect(t). + Status(http.StatusOK). + Assert(helpers.AssertNoErrors). + Assert(jsonpath.Equal(`$.response[0].title`, "p1")). + Assert(jsonpath.Equal(`$.response[1].title`, "p2")). + Assert(jsonpath.Equal(`$.response[2].title`, "p3")). + Assert(jsonpath.Equal(`$.response[3].title`, "p4")). + End() +}