github.com/secure-build/gitlab-runner@v12.5.0+incompatible/executors/docker/machine/terminal_test.go (about) 1 package machine 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 "gitlab.com/gitlab-org/gitlab-runner/common" 8 "gitlab.com/gitlab-org/gitlab-runner/session/terminal" 9 ) 10 11 func TestMachineExecutor_Connect_NoTerminal(t *testing.T) { 12 e := machineExecutor{ 13 executor: &common.MockExecutor{}, 14 } 15 16 conn, err := e.Connect() 17 assert.Error(t, err) 18 assert.Nil(t, conn) 19 } 20 21 type mockTerminalExecutor struct { 22 common.MockExecutor 23 terminal.MockInteractiveTerminal 24 } 25 26 func TestMachineExecutor_Connect_Terminal(t *testing.T) { 27 mock := mockTerminalExecutor{} 28 e := machineExecutor{ 29 executor: &mock, 30 } 31 mock.MockInteractiveTerminal.On("Connect").Return(&terminal.MockConn{}, nil).Once() 32 33 conn, err := e.Connect() 34 assert.NoError(t, err) 35 assert.NotNil(t, conn) 36 mock.MockInteractiveTerminal.AssertCalled(t, "Connect") 37 }