code.cloudfoundry.org/cli@v7.1.0+incompatible/command/v7/ssh_enabled_command_test.go (about) 1 package v7_test 2 3 import ( 4 "errors" 5 6 "code.cloudfoundry.org/cli/actor/v7action" 7 "code.cloudfoundry.org/cli/api/cloudcontroller/ccv3" 8 "code.cloudfoundry.org/cli/command/commandfakes" 9 . "code.cloudfoundry.org/cli/command/v7" 10 "code.cloudfoundry.org/cli/command/v7/v7fakes" 11 "code.cloudfoundry.org/cli/util/ui" 12 . "github.com/onsi/ginkgo" 13 . "github.com/onsi/gomega" 14 . "github.com/onsi/gomega/gbytes" 15 ) 16 17 var _ = Describe("ssh-enabled Command", func() { 18 var ( 19 cmd SSHEnabledCommand 20 testUI *ui.UI 21 fakeConfig *commandfakes.FakeConfig 22 fakeSharedActor *commandfakes.FakeSharedActor 23 fakeSSHEnabledActor *v7fakes.FakeActor 24 25 appName string 26 binaryName string 27 currentUserName string 28 executeErr error 29 ) 30 31 BeforeEach(func() { 32 testUI = ui.NewTestUI(nil, NewBuffer(), NewBuffer()) 33 fakeConfig = new(commandfakes.FakeConfig) 34 fakeSharedActor = new(commandfakes.FakeSharedActor) 35 fakeSSHEnabledActor = new(v7fakes.FakeActor) 36 37 cmd = SSHEnabledCommand{ 38 BaseCommand: BaseCommand{ 39 UI: testUI, 40 Config: fakeConfig, 41 SharedActor: fakeSharedActor, 42 Actor: fakeSSHEnabledActor, 43 }, 44 } 45 46 appName = "some-app" 47 cmd.RequiredArgs.AppName = appName 48 49 binaryName = "faceman" 50 fakeConfig.BinaryNameReturns(binaryName) 51 currentUserName = "some-user" 52 fakeConfig.CurrentUserNameReturns(currentUserName, nil) 53 }) 54 55 JustBeforeEach(func() { 56 executeErr = cmd.Execute(nil) 57 }) 58 59 When("checking if SSH is enabled succeeds", func() { 60 When("SSH is enabled", func() { 61 BeforeEach(func() { 62 fakeSSHEnabledActor.GetSSHEnabledByAppNameReturns( 63 ccv3.SSHEnabled{ 64 Enabled: true, 65 Reason: "Enabled globally", 66 }, 67 v7action.Warnings{"warning-1"}, 68 nil, 69 ) 70 }) 71 72 It("prints appropriate output", func() { 73 Expect(testUI.Out).To(Say(`ssh support is enabled for app '%s'\.`, appName)) 74 Expect(testUI.Err).To(Say("warning-1")) 75 }) 76 }) 77 78 When("SSH is disabled", func() { 79 BeforeEach(func() { 80 fakeSSHEnabledActor.GetSSHEnabledByAppNameReturns( 81 ccv3.SSHEnabled{ 82 Enabled: false, 83 Reason: "Disabled globally", 84 }, 85 v7action.Warnings{"warning-1"}, 86 nil, 87 ) 88 }) 89 90 It("prints appropriate output", func() { 91 Expect(testUI.Out).To(Say(`ssh support is disabled for app '%s'\.`, appName)) 92 Expect(testUI.Out).To(Say("Disabled globally")) 93 Expect(testUI.Err).To(Say("warning-1")) 94 }) 95 }) 96 }) 97 98 When("checking the target fails", func() { 99 BeforeEach(func() { 100 fakeSharedActor.CheckTargetReturns(errors.New("check-target-error")) 101 }) 102 103 It("returns the error", func() { 104 Expect(executeErr).To(MatchError("check-target-error")) 105 106 checkTargetedOrg, checkTargetedSpace := fakeSharedActor.CheckTargetArgsForCall(0) 107 Expect(checkTargetedOrg).To(BeTrue()) 108 Expect(checkTargetedSpace).To(BeTrue()) 109 }) 110 }) 111 112 When("checking if SSH is enabled returns an error", func() { 113 BeforeEach(func() { 114 fakeSSHEnabledActor.GetSSHEnabledByAppNameReturns( 115 ccv3.SSHEnabled{}, 116 v7action.Warnings{"warning-1"}, 117 errors.New("get-ssh-enabled-error"), 118 ) 119 }) 120 121 It("displays warnings and returns the error", func() { 122 Expect(testUI.Err).To(Say("warning-1")) 123 Expect(executeErr).To(MatchError("get-ssh-enabled-error")) 124 }) 125 }) 126 })