github.com/goravel/framework@v1.13.9/auth/console/jwt_secret_command_test.go (about)

     1  package console
     2  
     3  import (
     4  	"os"
     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"
    12  	"github.com/goravel/framework/support/file"
    13  )
    14  
    15  func TestJwtSecretCommand(t *testing.T) {
    16  	mockConfig := &configmock.Config{}
    17  	mockConfig.On("GetString", "jwt.secret").Return("").Twice()
    18  
    19  	jwtSecretCommand := NewJwtSecretCommand(mockConfig)
    20  	mockContext := &consolemocks.Context{}
    21  
    22  	assert.False(t, file.Exists(".env"))
    23  	err := file.Create(".env", "JWT_SECRET=\n")
    24  	assert.Nil(t, err)
    25  
    26  	assert.Nil(t, jwtSecretCommand.Handle(mockContext))
    27  
    28  	assert.True(t, file.Exists(".env"))
    29  	env, err := os.ReadFile(".env")
    30  	assert.Nil(t, err)
    31  	assert.True(t, len(env) > 10)
    32  	assert.Nil(t, file.Remove(".env"))
    33  
    34  	mockConfig.AssertExpectations(t)
    35  }
    36  
    37  func TestJwtSecretCommandWithCustomEnvFile(t *testing.T) {
    38  	support.EnvPath = "config.conf"
    39  
    40  	mockConfig := &configmock.Config{}
    41  	mockConfig.On("GetString", "jwt.secret").Return("").Twice()
    42  
    43  	jwtSecretCommand := NewJwtSecretCommand(mockConfig)
    44  	mockContext := &consolemocks.Context{}
    45  
    46  	assert.False(t, file.Exists("config.conf"))
    47  	err := file.Create("config.conf", "JWT_SECRET=\n")
    48  	assert.Nil(t, err)
    49  
    50  	assert.Nil(t, jwtSecretCommand.Handle(mockContext))
    51  
    52  	assert.True(t, file.Exists("config.conf"))
    53  	env, err := os.ReadFile("config.conf")
    54  	assert.Nil(t, err)
    55  	assert.True(t, len(env) > 10)
    56  	assert.Nil(t, file.Remove("config.conf"))
    57  
    58  	support.EnvPath = ".env"
    59  
    60  	mockConfig.AssertExpectations(t)
    61  }