fakeSession.StdinPipeReturns(fakeStdin, nil) fakeSession.StdoutPipeReturns(fakeStdout, nil) fakeSession.StderrPipeReturns(nil, errors.New("put this in your pipe")) err := secureShell.ConnectToShell("app-name", 2, "", config) Expect(err).To(MatchError("put this in your pipe")) }) }) Context("when the SecureSession#RequestPty fails", func() { It("returns an error", func() { fakeDialer.DialReturns(fakeSession, nil) fakeSession.StdinPipeReturns(fakeStdin, nil) fakeSession.StdoutPipeReturns(fakeStdout, nil) fakeSession.StderrPipeReturns(fakeStderr, nil) fakeSession.RequestPtyReturns(errors.New("no pty")) err := secureShell.ConnectToShell("app-name", 2, "", config) Expect(err).To(MatchError("no pty")) }) }) Context("when the SecureTerm#SetRawTerminal fails", func() { It("does not call RestoreTerminal", func() { fakeDialer.DialReturns(fakeSession, nil) fakeSession.StdinPipeReturns(fakeStdin, nil) fakeSession.StdoutPipeReturns(fakeStdout, nil) fakeSession.StderrPipeReturns(fakeStderr, nil) fakeTerm.SetRawTerminalReturns(nil, errors.New("can't set raw")) err := secureShell.ConnectToShell("app-name", 2, "", config)