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