Add missing page parent parameter to exported yaml

This commit is contained in:
Tomaž Jerman
2021-10-10 13:31:02 +02:00
parent 7f795ef418
commit 0dfe990485
3 changed files with 61 additions and 0 deletions
+7
View File
@@ -141,6 +141,13 @@ func (p *composePage) MarshalYAML() (interface{}, error) {
}
}
if p.relParent != nil {
nn, err = addMap(nn, "parent", firstOkString(p.relParent.Handle, p.relParent.Title))
if err != nil {
return nil, err
}
}
nn, err = addMap(nn,
"pageID", p.res.ID,
"handle", p.res.Handle,
+3
View File
@@ -85,6 +85,9 @@ func (wrap *composePage) UnmarshalYAML(n *yaml.Node) (err error) {
case "module":
return decodeRef(v, "page module", &wrap.refModule)
case "parent", "selfid":
return decodeRef(v, "page parent", &wrap.refParent)
case "visible":
return y7s.DecodeScalar(v, "page visible", &wrap.res.Visible)
+51
View File
@@ -43,6 +43,57 @@ func TestStoreYaml_pageRefs(t *testing.T) {
}
cases := []*tc{
{
name: "nested pages",
pre: func(ctx context.Context, s store.Storer) (error, *su.DecodeFilter) {
ns := sTestComposeNamespace(ctx, t, s, "base")
parent := &types.Page{
ID: su.NextID(),
NamespaceID: ns.ID,
Handle: "parent",
Title: "parent",
}
child := &types.Page{
ID: su.NextID(),
NamespaceID: ns.ID,
Handle: "child",
Title: "child",
SelfID: parent.ID,
}
err := store.CreateComposePage(ctx, s, parent)
if err != nil {
t.Fatal(err)
}
err = store.CreateComposePage(ctx, s, child)
if err != nil {
t.Fatal(err)
}
df := su.NewDecodeFilter().
ComposeNamespace(&types.NamespaceFilter{
Slug: "base_namespace",
}).
ComposePage(&types.PageFilter{
NamespaceID: ns.ID,
})
return nil, df
},
check: func(ctx context.Context, s store.Storer, req *require.Assertions) {
n, err := store.LookupComposeNamespaceBySlug(ctx, s, "base_namespace")
req.NoError(err)
parent, err := store.LookupComposePageByNamespaceIDHandle(ctx, s, n.ID, "parent")
req.NoError(err)
child, err := store.LookupComposePageByNamespaceIDHandle(ctx, s, n.ID, "child")
req.NoError(err)
req.Equal(parent.ID, child.SelfID)
},
},
{
name: "pageblock chart",
pre: func(ctx context.Context, s store.Storer) (error, *su.DecodeFilter) {