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  }