engine: resources: Test to make sure metaparams are preserved

We should ensure these get preserved across encoding/decoding. We rely
on this behaviour.
This commit is contained in:
James Shubin
2025-04-03 15:43:53 -04:00
parent 045b29291e
commit 6c1c08ceda

View File

@@ -45,6 +45,7 @@ import (
"time"
"github.com/purpleidea/mgmt/engine"
engineUtil "github.com/purpleidea/mgmt/engine/util"
"github.com/purpleidea/mgmt/pgraph"
"github.com/purpleidea/mgmt/util"
"github.com/purpleidea/mgmt/util/errwrap"
@@ -1777,3 +1778,47 @@ func TestResPtrUID1(t *testing.T) {
t.Errorf("uid's don't match")
}
}
func TestResToB64(t *testing.T) {
res, err := engine.NewNamedResource("noop", "n1")
if err != nil {
t.Errorf("could not build resource: %+v", err)
return
}
s, err := engineUtil.ResToB64(res)
if err != nil {
t.Errorf("error trying to encode res: %s", err.Error())
return
}
t.Logf("out: %s", s)
}
func TestResToB64Meta(t *testing.T) {
hidden := true // must be true, since false is a default
res, err := engine.NewNamedResource("noop", "n1")
if err != nil {
t.Errorf("could not build resource: %+v", err)
return
}
res.MetaParams().Hidden = hidden
s, err := engineUtil.ResToB64(res)
if err != nil {
t.Errorf("error trying to encode res: %s", err.Error())
return
}
t.Logf("out: %s", s)
r, err := engineUtil.B64ToRes(s)
if err != nil {
t.Errorf("error trying to decode res: %s", err.Error())
return
}
if r.MetaParams().Hidden != hidden {
t.Errorf("metaparam did not get preserved")
return
}
t.Logf("meta: %v", r.MetaParams().Hidden)
}