diff --git a/cmd/operator-sdk/olm/cmd.go b/cmd/operator-sdk/olm/cmd.go index 0f6e2b20a0..34b9fbb933 100644 --- a/cmd/operator-sdk/olm/cmd.go +++ b/cmd/operator-sdk/olm/cmd.go @@ -25,8 +25,8 @@ func NewCmd() *cobra.Command { } cmd.AddCommand( newInstallCmd(), - newUninstallCmd(), newStatusCmd(), + newUninstallCmd(), ) return cmd } diff --git a/cmd/operator-sdk/olm/cmd_test.go b/cmd/operator-sdk/olm/cmd_test.go new file mode 100644 index 0000000000..d3d818b633 --- /dev/null +++ b/cmd/operator-sdk/olm/cmd_test.go @@ -0,0 +1,37 @@ +// Copyright 2020 The Operator-SDK Authors +// +// 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 olm + +import ( + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" +) + +var _ = Describe("Running an olm command", func() { + Describe("NewCmd", func() { + It("builds a cobra command with the correct subcommands", func() { + cmd := NewCmd() + Expect(cmd).NotTo(BeNil()) + Expect(cmd.Use).NotTo(BeNil()) + Expect(cmd.Short).NotTo(BeNil()) + + subcommands := cmd.Commands() + Expect(len(subcommands)).To(Equal(3)) + Expect(subcommands[0].Use).To(Equal("install")) + Expect(subcommands[1].Use).To(Equal("status")) + Expect(subcommands[2].Use).To(Equal("uninstall")) + }) + }) +}) diff --git a/cmd/operator-sdk/olm/install_test.go b/cmd/operator-sdk/olm/install_test.go new file mode 100644 index 0000000000..e800cfac04 --- /dev/null +++ b/cmd/operator-sdk/olm/install_test.go @@ -0,0 +1,42 @@ +// Copyright 2020 The Operator-SDK Authors +// +// 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 olm + +import ( + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + "github.com/operator-framework/operator-sdk/internal/olm" +) + +var _ = Describe("Running an olm install command", func() { + Describe("newInstallCmd", func() { + It("builds a cobra command", func() { + cmd := newInstallCmd() + Expect(cmd).NotTo(BeNil()) + Expect(cmd.Use).NotTo(BeNil()) + Expect(cmd.Short).NotTo(BeNil()) + + flag := cmd.Flags().Lookup("version") + Expect(flag).NotTo(BeNil()) + Expect(flag.DefValue).To(Equal(olm.DefaultVersion)) + Expect(flag.Usage).NotTo(BeNil()) + + flag = cmd.Flags().Lookup("olm-namespace") + Expect(flag).NotTo(BeNil()) + Expect(flag.DefValue).To(Equal(olm.DefaultOLMNamespace)) + Expect(flag.Usage).NotTo(BeNil()) + }) + }) +}) diff --git a/cmd/operator-sdk/olm/olm_suite_test.go b/cmd/operator-sdk/olm/olm_suite_test.go new file mode 100644 index 0000000000..053a37be93 --- /dev/null +++ b/cmd/operator-sdk/olm/olm_suite_test.go @@ -0,0 +1,27 @@ +// Copyright 2020 The Operator-SDK Authors +// +// 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 olm + +import ( + "testing" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" +) + +func TestOlm(t *testing.T) { + RegisterFailHandler(Fail) + RunSpecs(t, "Olm Suite") +} diff --git a/cmd/operator-sdk/olm/status_test.go b/cmd/operator-sdk/olm/status_test.go new file mode 100644 index 0000000000..e98c66a4db --- /dev/null +++ b/cmd/operator-sdk/olm/status_test.go @@ -0,0 +1,42 @@ +// Copyright 2020 The Operator-SDK Authors +// +// 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 olm + +import ( + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + "github.com/operator-framework/operator-sdk/internal/olm" +) + +var _ = Describe("Running an olm status command", func() { + Describe("newStatusCmd", func() { + It("builds a cobra command", func() { + cmd := newStatusCmd() + Expect(cmd).NotTo(BeNil()) + Expect(cmd.Use).NotTo(BeNil()) + Expect(cmd.Short).NotTo(BeNil()) + + flag := cmd.Flags().Lookup("olm-namespace") + Expect(flag).NotTo(BeNil()) + Expect(flag.DefValue).To(Equal(olm.DefaultOLMNamespace)) + Expect(flag.Usage).NotTo(BeNil()) + + flag = cmd.Flags().Lookup("version") + Expect(flag).NotTo(BeNil()) + Expect(flag.DefValue).To(Equal("")) + Expect(flag.Usage).NotTo(BeNil()) + }) + }) +}) diff --git a/cmd/operator-sdk/olm/uninstall_test.go b/cmd/operator-sdk/olm/uninstall_test.go new file mode 100644 index 0000000000..57180d19b0 --- /dev/null +++ b/cmd/operator-sdk/olm/uninstall_test.go @@ -0,0 +1,42 @@ +// Copyright 2020 The Operator-SDK Authors +// +// 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 olm + +import ( + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + "github.com/operator-framework/operator-sdk/internal/olm" +) + +var _ = Describe("Running an olm uninstall command", func() { + Describe("newUninstallCmd", func() { + It("builds a cobra command", func() { + cmd := newUninstallCmd() + Expect(cmd).NotTo(BeNil()) + Expect(cmd.Use).NotTo(BeNil()) + Expect(cmd.Short).NotTo(BeNil()) + + flag := cmd.Flags().Lookup("version") + Expect(flag).NotTo(BeNil()) + Expect(flag.DefValue).To(Equal("")) + Expect(flag.Usage).NotTo(BeNil()) + + flag = cmd.Flags().Lookup("olm-namespace") + Expect(flag).NotTo(BeNil()) + Expect(flag.DefValue).To(Equal(olm.DefaultOLMNamespace)) + Expect(flag.Usage).NotTo(BeNil()) + }) + }) +})