github.com/ActiveState/cli@v0.0.0-20240508170324-6801f60cd051/pkg/project/registry_test.go (about)

     1  package project_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  
     8  	"github.com/ActiveState/cli/pkg/project"
     9  )
    10  
    11  func TestRegisterExpander_RequiresNonBlankName(t *testing.T) {
    12  	err := project.RegisterExpander("", func(_ string, n string, _ string, _ bool, ctx *project.Expansion) (string, error) {
    13  		return "", nil
    14  	})
    15  	assert.ErrorIs(t, err, project.ErrExpandBadName)
    16  	assert.False(t, project.IsRegistered(""))
    17  
    18  	err = project.RegisterExpander(" \n \t\f ", func(_ string, n string, _ string, _ bool, ctx *project.Expansion) (string, error) {
    19  		return "", nil
    20  	})
    21  	assert.ErrorIs(t, err, project.ErrExpandBadName)
    22  	assert.False(t, project.IsRegistered(" \n \t\f "))
    23  }
    24  
    25  func TestRegisterExpander_FuncCannotBeNil(t *testing.T) {
    26  	err := project.RegisterExpander("tests", nil)
    27  	assert.ErrorIs(t, err, project.ErrExpandNoFunc)
    28  	assert.False(t, project.IsRegistered("tests"))
    29  }
    30  
    31  func TestRegisterExpander(t *testing.T) {
    32  	assert.False(t, project.IsRegistered("lobsters"))
    33  	err := project.RegisterExpander("lobsters", func(_ string, n string, _ string, _ bool, ctx *project.Expansion) (string, error) {
    34  		return "", nil
    35  	})
    36  	assert.Nil(t, err)
    37  	assert.True(t, project.IsRegistered("lobsters"))
    38  }