github.com/goravel/framework@v1.13.9/foundation/console/test_make_command_test.go (about)

     1  package console
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  
     8  	consolemocks "github.com/goravel/framework/contracts/console/mocks"
     9  	"github.com/goravel/framework/support/file"
    10  )
    11  
    12  func TestTestMakeCommand(t *testing.T) {
    13  	testMakeCommand := &TestMakeCommand{}
    14  	mockContext := &consolemocks.Context{}
    15  	mockContext.On("Argument", 0).Return("").Once()
    16  	err := testMakeCommand.Handle(mockContext)
    17  	assert.EqualError(t, err, "Not enough arguments (missing: name) ")
    18  
    19  	mockContext.On("Argument", 0).Return("UserTest").Once()
    20  	err = testMakeCommand.Handle(mockContext)
    21  	assert.Nil(t, err)
    22  	assert.True(t, file.Exists("tests/user_test.go"))
    23  
    24  	mockContext.On("Argument", 0).Return("user/UserTest").Once()
    25  	err = testMakeCommand.Handle(mockContext)
    26  	assert.Nil(t, err)
    27  	assert.True(t, file.Exists("tests/user/user_test.go"))
    28  	assert.True(t, file.Contain("tests/user/user_test.go", "package user"))
    29  	assert.True(t, file.Contain("tests/user/user_test.go", "type UserTestSuite struct"))
    30  	assert.True(t, file.Contain("tests/user/user_test.go", "func (s *UserTestSuite) SetupTest() {"))
    31  	assert.Nil(t, file.Remove("tests"))
    32  }