From f75f6667c596f3e2af3add43ecc5cd4e95438cf8 Mon Sep 17 00:00:00 2001 From: janelletavares Date: Thu, 30 Mar 2023 14:12:08 +0200 Subject: [PATCH] Allow creating a Spire Maritime AIS resource instance without a URL flag value --- cmd/meroxa/root/resources/create.go | 4 +- cmd/meroxa/root/resources/create_test.go | 61 +++++++++++++++++++ go.mod | 2 +- go.sum | 4 +- .../meroxa-go/pkg/meroxa/resource_types.go | 2 + vendor/modules.txt | 2 +- 6 files changed, 70 insertions(+), 5 deletions(-) diff --git a/cmd/meroxa/root/resources/create.go b/cmd/meroxa/root/resources/create.go index 44d3c3395..81c4650ee 100644 --- a/cmd/meroxa/root/resources/create.go +++ b/cmd/meroxa/root/resources/create.go @@ -186,7 +186,9 @@ func (c *Create) Execute(ctx context.Context) error { Metadata: nil, } - if c.flags.Type != string(meroxa.ResourceTypeNotion) && c.flags.URL == "" { + if (c.flags.Type != string(meroxa.ResourceTypeNotion) && + c.flags.Type != string(meroxa.ResourceTypeSpireMaritimeAIS)) && + c.flags.URL == "" { return fmt.Errorf("required flag(s) \"url\" not set") } diff --git a/cmd/meroxa/root/resources/create_test.go b/cmd/meroxa/root/resources/create_test.go index 353dadf62..5952838aa 100644 --- a/cmd/meroxa/root/resources/create_test.go +++ b/cmd/meroxa/root/resources/create_test.go @@ -466,3 +466,64 @@ func TestCreateResourceExecutionPrivateKeyFlags(t *testing.T) { }) } } + +func TestCreateResourceURLFlag(t *testing.T) { + tests := []struct { + description string + resourceType string + client func(*gomock.Controller) *mock.MockClient + wantErr error + }{ + { + description: "Do not require URL for Notion", + resourceType: string(meroxa.ResourceTypeNotion), + client: func(ctrl *gomock.Controller) *mock.MockClient { + client := mock.NewMockClient(ctrl) + client.EXPECT().CreateResource(gomock.Any(), gomock.Any()).Return(&meroxa.Resource{}, nil).Times(1) + return client + }, + }, + { + description: "Do not require URL for Spire Maritime AIS", + resourceType: string(meroxa.ResourceTypeSpireMaritimeAIS), + client: func(ctrl *gomock.Controller) *mock.MockClient { + client := mock.NewMockClient(ctrl) + client.EXPECT().CreateResource(gomock.Any(), gomock.Any()).Return(&meroxa.Resource{}, nil).Times(1) + return client + }, + }, + { + description: "Require URL for one of the rest of the types", + resourceType: string(meroxa.ResourceTypePostgres), + client: func(ctrl *gomock.Controller) *mock.MockClient { + client := mock.NewMockClient(ctrl) + return client + }, + wantErr: fmt.Errorf(`required flag(s) "url" not set`), + }, + } + + for _, tc := range tests { + t.Run(tc.description, func(t *testing.T) { + ctx := context.Background() + ctrl := gomock.NewController(t) + logger := log.NewTestLogger() + c := &Create{ + client: tc.client(ctrl), + logger: logger, + } + c.args.Name = "my-resource" + c.flags.Type = tc.resourceType + + err := c.Execute(ctx) + if err != nil { + if tc.wantErr == nil { + t.Fatalf("unexpected error: %v", err) + } + assert.Equal(t, tc.wantErr.Error(), err.Error()) + } else { + require.NoError(t, err) + } + }) + } +} diff --git a/go.mod b/go.mod index cf3539f74..385c2164d 100644 --- a/go.mod +++ b/go.mod @@ -13,7 +13,7 @@ require ( github.com/manifoldco/promptui v0.9.0 github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-runewidth v0.0.13 // indirect - github.com/meroxa/meroxa-go v0.0.0-20230316160201-f7bae0e537fb + github.com/meroxa/meroxa-go v0.0.0-20230331072126-47c9496dfb9b github.com/nirasan/go-oauth-pkce-code-verifier v0.0.0-20170819232839-0fbfe93532da github.com/pkg/browser v0.0.0-20210115035449-ce105d075bb4 github.com/rivo/uniseg v0.2.0 // indirect diff --git a/go.sum b/go.sum index 00c887b33..b2f20290c 100644 --- a/go.sum +++ b/go.sum @@ -536,8 +536,8 @@ github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lL github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2/go.mod h1:eD9eIE7cdwcMi9rYluz88Jz2VyhSmden33/aXg4oVIY= -github.com/meroxa/meroxa-go v0.0.0-20230316160201-f7bae0e537fb h1:eQTWI8puBDJPtIKwOsMwxDExRJ0YK/T+DNCDOUS8dOs= -github.com/meroxa/meroxa-go v0.0.0-20230316160201-f7bae0e537fb/go.mod h1:VaDn0fLKHG2VoI9MQVEqwtfum4BaGr8pcgtfWRe8/Dk= +github.com/meroxa/meroxa-go v0.0.0-20230331072126-47c9496dfb9b h1:xIxLrz8h0QA0QmFZrW3ciIjmEnGDszS/z3yjfD3d+pY= +github.com/meroxa/meroxa-go v0.0.0-20230331072126-47c9496dfb9b/go.mod h1:VaDn0fLKHG2VoI9MQVEqwtfum4BaGr8pcgtfWRe8/Dk= github.com/meroxa/turbine-core v0.0.0-20230113145603-c7b1554653fa h1:addv/qyR+R6fqHBrJMf4sLp52BAfk4rf88f58aul1hw= github.com/meroxa/turbine-core v0.0.0-20230113145603-c7b1554653fa/go.mod h1:zhJZykOx6X/L2OKNv8a2P0w7LrwXv3nLh0BLIzfrUh8= github.com/meroxa/turbine-go v1.0.0 h1:5/mLoRbtdefpcC35fG3YZioz1qgrlaHOKh56n2hJ9lQ= diff --git a/vendor/github.com/meroxa/meroxa-go/pkg/meroxa/resource_types.go b/vendor/github.com/meroxa/meroxa-go/pkg/meroxa/resource_types.go index 0ac3c8849..95d2bf4d5 100644 --- a/vendor/github.com/meroxa/meroxa-go/pkg/meroxa/resource_types.go +++ b/vendor/github.com/meroxa/meroxa-go/pkg/meroxa/resource_types.go @@ -83,10 +83,12 @@ const ( ResourceTypeShopify ResourceTypeName = "shopify" ResourceTypeSlack ResourceTypeName = "slack" ResourceTypeSocket ResourceTypeName = "socket" + ResourceTypeSpireMaritimeAIS ResourceTypeName = "spire_maritime_ais" ResourceTypeSplunk ResourceTypeName = "splunk" ResourceTypeStatsD ResourceTypeName = "statsd" ResourceTypeStripe ResourceTypeName = "stripe" ResourceTypeSyslog ResourceTypeName = "syslog" + ResourceTypeSybase ResourceTypeName = "sybase" ResourceTypeTeradata ResourceTypeName = "teradata" ResourceTypeVitess ResourceTypeName = "vitess" ResourceTypeWorkday ResourceTypeName = "workday" diff --git a/vendor/modules.txt b/vendor/modules.txt index a87de1f28..35e248e35 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -196,7 +196,7 @@ github.com/mattn/go-runewidth # github.com/mattn/go-shellwords v1.0.12 ## explicit; go 1.13 github.com/mattn/go-shellwords -# github.com/meroxa/meroxa-go v0.0.0-20230316160201-f7bae0e537fb +# github.com/meroxa/meroxa-go v0.0.0-20230331072126-47c9496dfb9b ## explicit; go 1.20 github.com/meroxa/meroxa-go/pkg/meroxa github.com/meroxa/meroxa-go/pkg/mock