From e7ae5887173827cfc63469127b5e17a518dbec13 Mon Sep 17 00:00:00 2001 From: Jonathan Berkhahn Date: Mon, 13 Jul 2020 14:48:09 -0700 Subject: [PATCH] Add unit tests for cmd/olm --- cmd/operator-sdk/olm/cmd.go | 2 +- cmd/operator-sdk/olm/cmd_test.go | 37 +++++++++++++++++++++++ cmd/operator-sdk/olm/install_test.go | 42 ++++++++++++++++++++++++++ cmd/operator-sdk/olm/olm_suite_test.go | 27 +++++++++++++++++ cmd/operator-sdk/olm/status_test.go | 42 ++++++++++++++++++++++++++ cmd/operator-sdk/olm/uninstall_test.go | 42 ++++++++++++++++++++++++++ 6 files changed, 191 insertions(+), 1 deletion(-) create mode 100644 cmd/operator-sdk/olm/cmd_test.go create mode 100644 cmd/operator-sdk/olm/install_test.go create mode 100644 cmd/operator-sdk/olm/olm_suite_test.go create mode 100644 cmd/operator-sdk/olm/status_test.go create mode 100644 cmd/operator-sdk/olm/uninstall_test.go 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()) + }) + }) +})