From 9e5fbb029cf3277045acb7ca171c55ae3f3e8c57 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Barroso?= Date: Fri, 24 Jan 2025 15:04:20 +0100 Subject: [PATCH 1/8] use display decorator --- cmd/conduit/root/version/version.go | 13 +++++-- cmd/conduit/root/version/version_test.go | 48 ++++++++++++++++++++++++ go.mod | 2 + 3 files changed, 60 insertions(+), 3 deletions(-) create mode 100644 cmd/conduit/root/version/version_test.go diff --git a/cmd/conduit/root/version/version.go b/cmd/conduit/root/version/version.go index 669113146..b2b49d11d 100644 --- a/cmd/conduit/root/version/version.go +++ b/cmd/conduit/root/version/version.go @@ -17,7 +17,6 @@ package version import ( "context" "fmt" - "os" "github.com/conduitio/conduit/pkg/conduit" "github.com/conduitio/ecdysis" @@ -26,14 +25,22 @@ import ( var ( _ ecdysis.CommandWithExecute = (*VersionCommand)(nil) _ ecdysis.CommandWithDocs = (*VersionCommand)(nil) + _ ecdysis.CommandWithOutput = (*VersionCommand)(nil) ) -type VersionCommand struct{} +type VersionCommand struct { + display ecdysis.Display +} + +func (c *VersionCommand) SetDisplay(display ecdysis.Display) { + c.display = display +} func (c *VersionCommand) Usage() string { return "version" } func (c *VersionCommand) Execute(_ context.Context) error { - _, _ = fmt.Fprintf(os.Stdout, "%s\n", conduit.Version(true)) + c.display.Stdout(fmt.Sprintf("%s\n", conduit.Version(true))) + return nil } diff --git a/cmd/conduit/root/version/version_test.go b/cmd/conduit/root/version/version_test.go new file mode 100644 index 000000000..ee66e93cf --- /dev/null +++ b/cmd/conduit/root/version/version_test.go @@ -0,0 +1,48 @@ +// Copyright © 2025 Meroxa, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package version + +import ( + "bytes" + "context" + "fmt" + "runtime" + "strings" + "testing" + + "github.com/conduitio/ecdysis" + "github.com/matryer/is" +) + +func TestVersion_Execute(t *testing.T) { + is := is.New(t) + + buf := new(bytes.Buffer) + + display := &ecdysis.DefaultDisplay{} + display.SetOutput(buf, nil) + + cmd := &VersionCommand{} + cmd.SetDisplay(display) + + expectedOutput := fmt.Sprintf("%s/%s", runtime.GOOS, runtime.GOARCH) + + err := cmd.Execute(context.Background()) + is.NoErr(err) + + actualOutput := strings.TrimSpace(buf.String()) + + is.Equal(actualOutput, expectedOutput) +} diff --git a/go.mod b/go.mod index 0786be4cc..8278bfd47 100644 --- a/go.mod +++ b/go.mod @@ -394,3 +394,5 @@ require ( mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f // indirect pluginrpc.com/pluginrpc v0.5.0 // indirect ) + +replace github.com/conduitio/ecdysis => ../ecdysis From 0f357eafa7aec63efa28b392936fb5cff95ad20b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Barroso?= Date: Fri, 24 Jan 2025 18:55:31 +0100 Subject: [PATCH 2/8] update method --- cmd/conduit/root/version/version.go | 9 ++++----- cmd/conduit/root/version/version_test.go | 6 +++--- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/cmd/conduit/root/version/version.go b/cmd/conduit/root/version/version.go index b2b49d11d..2cd411d1d 100644 --- a/cmd/conduit/root/version/version.go +++ b/cmd/conduit/root/version/version.go @@ -29,18 +29,17 @@ var ( ) type VersionCommand struct { - display ecdysis.Display + output ecdysis.Output } -func (c *VersionCommand) SetDisplay(display ecdysis.Display) { - c.display = display +func (c *VersionCommand) Output(output ecdysis.Output) { + c.output = output } func (c *VersionCommand) Usage() string { return "version" } func (c *VersionCommand) Execute(_ context.Context) error { - c.display.Stdout(fmt.Sprintf("%s\n", conduit.Version(true))) - + c.output.Stdout(fmt.Sprintf("%s\n", conduit.Version(true))) return nil } diff --git a/cmd/conduit/root/version/version_test.go b/cmd/conduit/root/version/version_test.go index ee66e93cf..d9c51ce28 100644 --- a/cmd/conduit/root/version/version_test.go +++ b/cmd/conduit/root/version/version_test.go @@ -31,11 +31,11 @@ func TestVersion_Execute(t *testing.T) { buf := new(bytes.Buffer) - display := &ecdysis.DefaultDisplay{} - display.SetOutput(buf, nil) + out := &ecdysis.DefaultOutput{} + out.Output(buf, nil) cmd := &VersionCommand{} - cmd.SetDisplay(display) + cmd.Output(out) expectedOutput := fmt.Sprintf("%s/%s", runtime.GOOS, runtime.GOARCH) From dc487c7a94e49217b5eb5c36b33c1de3e6599a29 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Barroso?= Date: Fri, 24 Jan 2025 19:29:55 +0100 Subject: [PATCH 3/8] add tests --- cmd/conduit/root/config/config_test.go | 2 +- cmd/conduit/root/root.go | 11 ++++++--- cmd/conduit/root/root_test.go | 30 ++++++++++++++++++++++++ cmd/conduit/root/version/version_test.go | 2 +- 4 files changed, 40 insertions(+), 5 deletions(-) diff --git a/cmd/conduit/root/config/config_test.go b/cmd/conduit/root/config/config_test.go index 0e7362cc7..63ea0c139 100644 --- a/cmd/conduit/root/config/config_test.go +++ b/cmd/conduit/root/config/config_test.go @@ -27,7 +27,7 @@ import ( "github.com/matryer/is" ) -func TestConfig_WithFlags(t *testing.T) { +func TestConfigWithFlags(t *testing.T) { testCases := []struct { name string args []string diff --git a/cmd/conduit/root/root.go b/cmd/conduit/root/root.go index 0786eb4d7..af248ac0a 100644 --- a/cmd/conduit/root/root.go +++ b/cmd/conduit/root/root.go @@ -17,7 +17,6 @@ package root import ( "context" "fmt" - "os" "github.com/conduitio/conduit/cmd/conduit/root/config" "github.com/conduitio/conduit/cmd/conduit/root/connectorplugins" @@ -39,6 +38,7 @@ var ( _ ecdysis.CommandWithExecute = (*RootCommand)(nil) _ ecdysis.CommandWithDocs = (*RootCommand)(nil) _ ecdysis.CommandWithSubCommands = (*RootCommand)(nil) + _ ecdysis.CommandWithOutput = (*RootCommand)(nil) ) type RootFlags struct { @@ -50,12 +50,17 @@ type RootFlags struct { } type RootCommand struct { - flags RootFlags + flags RootFlags + output ecdysis.Output +} + +func (c *RootCommand) Output(output ecdysis.Output) { + c.output = output } func (c *RootCommand) Execute(ctx context.Context) error { if c.flags.Version { - _, _ = fmt.Fprintf(os.Stdout, "%s\n", conduit.Version(true)) + c.output.Stdout(fmt.Sprintf("%s\n", conduit.Version(true))) return nil } diff --git a/cmd/conduit/root/root_test.go b/cmd/conduit/root/root_test.go index e522b1919..8a068e5cd 100644 --- a/cmd/conduit/root/root_test.go +++ b/cmd/conduit/root/root_test.go @@ -15,6 +15,11 @@ package root import ( + "bytes" + "context" + "fmt" + "runtime" + "strings" "testing" "github.com/conduitio/ecdysis" @@ -56,3 +61,28 @@ func TestRootCommandFlags(t *testing.T) { is.Equal(cf.Usage, f.usage) } } + +func TestRootCommandExecuteWithVersionFlag(t *testing.T) { + is := is.New(t) + + buf := new(bytes.Buffer) + + out := &ecdysis.DefaultOutput{} + out.Output(buf, nil) + + cmd := &RootCommand{ + flags: RootFlags{ + Version: true, + }, + } + cmd.Output(out) + + expectedOutput := fmt.Sprintf("%s/%s", runtime.GOOS, runtime.GOARCH) + + err := cmd.Execute(context.Background()) + is.NoErr(err) + + actualOutput := strings.TrimSpace(buf.String()) + + is.Equal(actualOutput, expectedOutput) +} diff --git a/cmd/conduit/root/version/version_test.go b/cmd/conduit/root/version/version_test.go index d9c51ce28..d67952aa2 100644 --- a/cmd/conduit/root/version/version_test.go +++ b/cmd/conduit/root/version/version_test.go @@ -26,7 +26,7 @@ import ( "github.com/matryer/is" ) -func TestVersion_Execute(t *testing.T) { +func TestVersionCommandExecute(t *testing.T) { is := is.New(t) buf := new(bytes.Buffer) From abd98f2b60781305f9776e953a35ced8ad31dd7c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Barroso?= Date: Fri, 24 Jan 2025 19:30:18 +0100 Subject: [PATCH 4/8] go mod tidy --- go.sum | 2 -- 1 file changed, 2 deletions(-) diff --git a/go.sum b/go.sum index 1f6a59179..b0165de62 100644 --- a/go.sum +++ b/go.sum @@ -246,8 +246,6 @@ github.com/conduitio/conduit-processor-sdk v0.4.0 h1:wF1Fj31aneNixNbW5rJ0/5Q3vwW github.com/conduitio/conduit-processor-sdk v0.4.0/go.mod h1:Jj9ZBTee7nO0XeociDxe9gSvLFN1GbPWP1Aj04DPeZQ= github.com/conduitio/conduit-schema-registry v0.2.2 h1:Q0uL8egRAzJlRV7Ed5nEcqZ1yE/UQeZJad3VmhgTSFE= github.com/conduitio/conduit-schema-registry v0.2.2/go.mod h1:EmT4ylkz15LYddL6qU4wDX52n1Yp0aHvEDRIWOYYzFs= -github.com/conduitio/ecdysis v0.2.0 h1:sH1rc5icJBzwUU51yYMMFfcOez0bSeEpmJ+NrmYpU/8= -github.com/conduitio/ecdysis v0.2.0/go.mod h1:CRQ3QxTsu/hhFepToP8InsBltZMfGIncbWvUNnNJSC4= github.com/conduitio/yaml/v3 v3.3.0 h1:kbbaOSHcuH39gP4+rgbJGl6DSbLZcJgEaBvkEXJlCsI= github.com/conduitio/yaml/v3 v3.3.0/go.mod h1:JNgFMOX1t8W4YJuRZOh6GggVtSMsgP9XgTw+7dIenpc= github.com/containerd/cgroups/v3 v3.0.5 h1:44na7Ud+VwyE7LIoJ8JTNQOa549a8543BmzaJHo6Bzo= From f1316f1f591812018169ab6b00af305a72517a83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Barroso?= Date: Fri, 24 Jan 2025 19:31:56 +0100 Subject: [PATCH 5/8] use latest commit --- go.mod | 4 +--- go.sum | 2 ++ 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 8278bfd47..89974f686 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/conduitio/conduit-connector-sdk v0.12.0 github.com/conduitio/conduit-processor-sdk v0.4.0 github.com/conduitio/conduit-schema-registry v0.2.2 - github.com/conduitio/ecdysis v0.2.0 + github.com/conduitio/ecdysis v0.2.1-0.20250124174339-24f680d46228 github.com/conduitio/yaml/v3 v3.3.0 github.com/dop251/goja v0.0.0-20240806095544-3491d4a58fbe github.com/dop251/goja_nodejs v0.0.0-20231122114759-e84d9a924c5c @@ -394,5 +394,3 @@ require ( mvdan.cc/unparam v0.0.0-20240528143540-8a5130ca722f // indirect pluginrpc.com/pluginrpc v0.5.0 // indirect ) - -replace github.com/conduitio/ecdysis => ../ecdysis diff --git a/go.sum b/go.sum index b0165de62..67eb44bd2 100644 --- a/go.sum +++ b/go.sum @@ -246,6 +246,8 @@ github.com/conduitio/conduit-processor-sdk v0.4.0 h1:wF1Fj31aneNixNbW5rJ0/5Q3vwW github.com/conduitio/conduit-processor-sdk v0.4.0/go.mod h1:Jj9ZBTee7nO0XeociDxe9gSvLFN1GbPWP1Aj04DPeZQ= github.com/conduitio/conduit-schema-registry v0.2.2 h1:Q0uL8egRAzJlRV7Ed5nEcqZ1yE/UQeZJad3VmhgTSFE= github.com/conduitio/conduit-schema-registry v0.2.2/go.mod h1:EmT4ylkz15LYddL6qU4wDX52n1Yp0aHvEDRIWOYYzFs= +github.com/conduitio/ecdysis v0.2.1-0.20250124174339-24f680d46228 h1:LfjFuJeBl9UfMf7s3VBz12R7/CTRs9F73D19GbEwOso= +github.com/conduitio/ecdysis v0.2.1-0.20250124174339-24f680d46228/go.mod h1:8ztJTkL5AfCm2qFMzaSUO/IItvJ3z7Jj1PWLcgqmT14= github.com/conduitio/yaml/v3 v3.3.0 h1:kbbaOSHcuH39gP4+rgbJGl6DSbLZcJgEaBvkEXJlCsI= github.com/conduitio/yaml/v3 v3.3.0/go.mod h1:JNgFMOX1t8W4YJuRZOh6GggVtSMsgP9XgTw+7dIenpc= github.com/containerd/cgroups/v3 v3.0.5 h1:44na7Ud+VwyE7LIoJ8JTNQOa549a8543BmzaJHo6Bzo= From 6934096be3bacf9a6683054404d9ca4317dd4154 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Barroso?= Date: Mon, 27 Jan 2025 12:31:19 +0100 Subject: [PATCH 6/8] uses latest version of ecdysis --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 89974f686..9f5707a7a 100644 --- a/go.mod +++ b/go.mod @@ -19,7 +19,7 @@ require ( github.com/conduitio/conduit-connector-sdk v0.12.0 github.com/conduitio/conduit-processor-sdk v0.4.0 github.com/conduitio/conduit-schema-registry v0.2.2 - github.com/conduitio/ecdysis v0.2.1-0.20250124174339-24f680d46228 + github.com/conduitio/ecdysis v0.3.0 github.com/conduitio/yaml/v3 v3.3.0 github.com/dop251/goja v0.0.0-20240806095544-3491d4a58fbe github.com/dop251/goja_nodejs v0.0.0-20231122114759-e84d9a924c5c diff --git a/go.sum b/go.sum index 67eb44bd2..3706868f4 100644 --- a/go.sum +++ b/go.sum @@ -246,8 +246,8 @@ github.com/conduitio/conduit-processor-sdk v0.4.0 h1:wF1Fj31aneNixNbW5rJ0/5Q3vwW github.com/conduitio/conduit-processor-sdk v0.4.0/go.mod h1:Jj9ZBTee7nO0XeociDxe9gSvLFN1GbPWP1Aj04DPeZQ= github.com/conduitio/conduit-schema-registry v0.2.2 h1:Q0uL8egRAzJlRV7Ed5nEcqZ1yE/UQeZJad3VmhgTSFE= github.com/conduitio/conduit-schema-registry v0.2.2/go.mod h1:EmT4ylkz15LYddL6qU4wDX52n1Yp0aHvEDRIWOYYzFs= -github.com/conduitio/ecdysis v0.2.1-0.20250124174339-24f680d46228 h1:LfjFuJeBl9UfMf7s3VBz12R7/CTRs9F73D19GbEwOso= -github.com/conduitio/ecdysis v0.2.1-0.20250124174339-24f680d46228/go.mod h1:8ztJTkL5AfCm2qFMzaSUO/IItvJ3z7Jj1PWLcgqmT14= +github.com/conduitio/ecdysis v0.3.0 h1:vBoh60M1/d2CUnWG964OT6uhr3NSO90SFW9RRPCKt9A= +github.com/conduitio/ecdysis v0.3.0/go.mod h1:8ztJTkL5AfCm2qFMzaSUO/IItvJ3z7Jj1PWLcgqmT14= github.com/conduitio/yaml/v3 v3.3.0 h1:kbbaOSHcuH39gP4+rgbJGl6DSbLZcJgEaBvkEXJlCsI= github.com/conduitio/yaml/v3 v3.3.0/go.mod h1:JNgFMOX1t8W4YJuRZOh6GggVtSMsgP9XgTw+7dIenpc= github.com/containerd/cgroups/v3 v3.0.5 h1:44na7Ud+VwyE7LIoJ8JTNQOa549a8543BmzaJHo6Bzo= From 316c03470e072942fb0616745ad52be0476d620a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Barroso?= Date: Tue, 28 Jan 2025 11:49:15 +0100 Subject: [PATCH 7/8] update test --- cmd/conduit/root/root_test.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/cmd/conduit/root/root_test.go b/cmd/conduit/root/root_test.go index 8a068e5cd..b35c0d845 100644 --- a/cmd/conduit/root/root_test.go +++ b/cmd/conduit/root/root_test.go @@ -17,8 +17,7 @@ package root import ( "bytes" "context" - "fmt" - "runtime" + "github.com/conduitio/conduit/pkg/conduit" "strings" "testing" @@ -77,7 +76,7 @@ func TestRootCommandExecuteWithVersionFlag(t *testing.T) { } cmd.Output(out) - expectedOutput := fmt.Sprintf("%s/%s", runtime.GOOS, runtime.GOARCH) + expectedOutput := strings.TrimSpace(conduit.Version(true)) err := cmd.Execute(context.Background()) is.NoErr(err) From 5c10b748c1bdc89253401938f94548b4f4790744 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Barroso?= Date: Tue, 28 Jan 2025 11:59:52 +0100 Subject: [PATCH 8/8] fix --- cmd/conduit/root/root_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/conduit/root/root_test.go b/cmd/conduit/root/root_test.go index b35c0d845..b09791c48 100644 --- a/cmd/conduit/root/root_test.go +++ b/cmd/conduit/root/root_test.go @@ -17,10 +17,10 @@ package root import ( "bytes" "context" - "github.com/conduitio/conduit/pkg/conduit" "strings" "testing" + "github.com/conduitio/conduit/pkg/conduit" "github.com/conduitio/ecdysis" "github.com/matryer/is" "github.com/spf13/pflag"