From e628239f38d74669ac14cfd84b113496f94add9d Mon Sep 17 00:00:00 2001 From: Leonidas Date: Fri, 22 Dec 2023 10:02:37 +0200 Subject: [PATCH] Change of masked function signature --- cog.go | 8 ++++---- cog_test.go | 18 ++++++++++++++---- 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/cog.go b/cog.go index 70c6ee9..07502ac 100644 --- a/cog.go +++ b/cog.go @@ -13,7 +13,7 @@ import ( type Subscriber[T any] func(T) error type Callback[T any] func(T) -type MaskFn[T any] func(T) T +type MaskFn[T any] func(*T) type C[T any] struct { lock sync.Mutex @@ -148,11 +148,11 @@ func (cog *C[T]) Config() T { return cog.config } -func (cog *C[T]) String(mask ...MaskFn[T]) (string, error) { +func (cog *C[T]) String(masks ...MaskFn[T]) (string, error) { data := cog.Config() - if len(mask) > 0 { - data = mask[0](data) + for _, mask := range masks { + mask(&data) } b, err := json.MarshalIndent(data, "", " ") diff --git a/cog_test.go b/cog_test.go index 48852d8..09d8c35 100644 --- a/cog_test.go +++ b/cog_test.go @@ -471,18 +471,17 @@ func (s *testSuite) TestFileHandlerUpdateFail() { assert.ErrorContainsf(s.T(), err, "filehandler error", "not a filehandler error") } -func (s *testSuite) TestStringMask() { +func (s *testSuite) TestString() { c, err := setup(s.T(), fmt.Sprintf(defaultConfig, string(s.testCase.Type)), "", s.testCase.Type, s.testCase.TestString) require.NoErrorf(s.T(), err, testSetupErrorMsg) got := c.Config() assert.Equalf(s.T(), testData, got, expectedResultErrorMsg) - str, err := c.String(func(tc testConfig) testConfig { + str, err := c.String(func(tc *testConfig) { tc.Name = "[masked]" - return tc }) - require.NoErrorf(s.T(), err, "filehandler should not return error") + require.NoErrorf(s.T(), err, "string method should not return error") strExpected := `{ "Name": "[masked]", @@ -491,4 +490,15 @@ func (s *testSuite) TestStringMask() { }` assert.Equal(s.T(), strExpected, str) + + str, err = c.String() + require.NoErrorf(s.T(), err, "string method should not return error") + + strExpected = `{ + "Name": "config_test", + "Version": 123, + "IsPrefork": true +}` + + assert.Equal(s.T(), strExpected, str) }