github.com/liamawhite/cli-with-i18n@v6.32.1-0.20171122084555-dede0a5c3448+incompatible/command/v2/ssh_code_command_test.go (about) 1 package v2_test 2 3 import ( 4 "errors" 5 6 "github.com/liamawhite/cli-with-i18n/actor/sharedaction" 7 "github.com/liamawhite/cli-with-i18n/command/commandfakes" 8 "github.com/liamawhite/cli-with-i18n/command/translatableerror" 9 . "github.com/liamawhite/cli-with-i18n/command/v2" 10 "github.com/liamawhite/cli-with-i18n/command/v2/v2fakes" 11 "github.com/liamawhite/cli-with-i18n/util/ui" 12 . "github.com/onsi/ginkgo" 13 . "github.com/onsi/gomega" 14 . "github.com/onsi/gomega/gbytes" 15 ) 16 17 var _ = Describe("ssh-code Command", func() { 18 var ( 19 cmd SSHCodeCommand 20 testUI *ui.UI 21 fakeConfig *commandfakes.FakeConfig 22 fakeSharedActor *commandfakes.FakeSharedActor 23 fakeActor *v2fakes.FakeSSHCodeActor 24 binaryName string 25 executeErr error 26 ) 27 28 BeforeEach(func() { 29 testUI = ui.NewTestUI(nil, NewBuffer(), NewBuffer()) 30 fakeConfig = new(commandfakes.FakeConfig) 31 fakeSharedActor = new(commandfakes.FakeSharedActor) 32 fakeActor = new(v2fakes.FakeSSHCodeActor) 33 34 cmd = SSHCodeCommand{ 35 UI: testUI, 36 Config: fakeConfig, 37 SharedActor: fakeSharedActor, 38 Actor: fakeActor, 39 } 40 41 binaryName = "faceman" 42 fakeConfig.BinaryNameReturns(binaryName) 43 }) 44 45 JustBeforeEach(func() { 46 executeErr = cmd.Execute(nil) 47 }) 48 49 Context("when checking the target fails", func() { 50 BeforeEach(func() { 51 fakeSharedActor.CheckTargetReturns( 52 sharedaction.NotLoggedInError{BinaryName: binaryName}) 53 }) 54 55 It("returns an error", func() { 56 Expect(executeErr).To(MatchError(translatableerror.NotLoggedInError{BinaryName: binaryName})) 57 58 Expect(fakeSharedActor.CheckTargetCallCount()).To(Equal(1)) 59 config, targetedOrganizationRequired, targetedSpaceRequired := fakeSharedActor.CheckTargetArgsForCall(0) 60 Expect(config).To(Equal(fakeConfig)) 61 Expect(targetedOrganizationRequired).To(Equal(false)) 62 Expect(targetedSpaceRequired).To(Equal(false)) 63 }) 64 }) 65 66 Context("when the user is logged in", func() { 67 var code string 68 69 BeforeEach(func() { 70 code = "s3curep4ss" 71 fakeActor.GetSSHPasscodeReturns(code, nil) 72 }) 73 74 It("displays the ssh code", func() { 75 Expect(executeErr).NotTo(HaveOccurred()) 76 Expect(testUI.Out).To(Say(code)) 77 Expect(fakeActor.GetSSHPasscodeCallCount()).To(Equal(1)) 78 }) 79 80 Context("when an error is encountered getting the ssh code", func() { 81 var expectedErr error 82 83 BeforeEach(func() { 84 expectedErr = errors.New("get ssh code error") 85 fakeActor.GetSSHPasscodeReturns("", expectedErr) 86 }) 87 88 It("returns the error", func() { 89 Expect(executeErr).To(MatchError(expectedErr)) 90 91 Expect(fakeActor.GetSSHPasscodeCallCount()).To(Equal(1)) 92 }) 93 }) 94 }) 95 })