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

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