github.com/goravel/framework@v1.13.9/database/console/migrate_make_command_test.go (about) 1 package console 2 3 import ( 4 "fmt" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 9 configmock "github.com/goravel/framework/contracts/config/mocks" 10 consolemocks "github.com/goravel/framework/contracts/console/mocks" 11 "github.com/goravel/framework/support/carbon" 12 "github.com/goravel/framework/support/file" 13 ) 14 15 func TestMigrateMakeCommand(t *testing.T) { 16 now := carbon.Now() 17 up := fmt.Sprintf("database/migrations/%s_%s.%s.sql", now.ToShortDateTimeString(), "create_users_table", "up") 18 down := fmt.Sprintf("database/migrations/%s_%s.%s.sql", now.ToShortDateTimeString(), "create_users_table", "down") 19 20 mockConfig := &configmock.Config{} 21 mockConfig.On("GetString", "database.default").Return("mysql").Times(3) 22 mockConfig.On("GetString", "database.connections.mysql.driver").Return("mysql").Once() 23 mockConfig.On("GetString", "database.connections.mysql.charset").Return("utf8mb4").Twice() 24 25 migrateMakeCommand := NewMigrateMakeCommand(mockConfig) 26 mockContext := &consolemocks.Context{} 27 mockContext.On("Argument", 0).Return("").Once() 28 assert.Nil(t, migrateMakeCommand.Handle(mockContext)) 29 assert.False(t, file.Exists(up)) 30 assert.False(t, file.Exists(down)) 31 32 mockContext.On("Argument", 0).Return("create_users_table").Once() 33 assert.Nil(t, migrateMakeCommand.Handle(mockContext)) 34 assert.True(t, file.Exists(up)) 35 assert.True(t, file.Exists(down)) 36 assert.Nil(t, file.Remove("database")) 37 38 mockConfig.AssertExpectations(t) 39 }