From 6c1c08cedac8ab13a0d7de58a8e8e42a7c34e014 Mon Sep 17 00:00:00 2001 From: James Shubin Date: Thu, 3 Apr 2025 15:43:53 -0400 Subject: [PATCH] engine: resources: Test to make sure metaparams are preserved We should ensure these get preserved across encoding/decoding. We rely on this behaviour. --- engine/resources/resources_test.go | 45 ++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/engine/resources/resources_test.go b/engine/resources/resources_test.go index d8e41fea..9ba13221 100644 --- a/engine/resources/resources_test.go +++ b/engine/resources/resources_test.go @@ -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) +}