github.com/please-build/puku@v1.7.3-0.20240516143641-f7d7f4941f57/e2e/tests/codegen/codgen_test.go (about)

     1  package codegen
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  	"github.com/stretchr/testify/require"
     8  
     9  	"github.com/please-build/puku/e2e/harness"
    10  	"github.com/please-build/puku/edit"
    11  )
    12  
    13  func TestTarget(t *testing.T) {
    14  	h := harness.MustNew()
    15  	err := h.Format("//codegen/...")
    16  	require.NoError(t, err)
    17  
    18  	file, err := h.ParseFile("codegen/BUILD_FILE.plz")
    19  	require.NoError(t, err)
    20  
    21  	codegen := edit.FindTargetByName(file, "codegen")
    22  	require.NotNil(t, codegen)
    23  
    24  	assert.ElementsMatch(t, []string{"//foo"}, codegen.AttrStrings("deps"))
    25  	assert.ElementsMatch(t, []string{":srcs"}, codegen.AttrStrings("srcs"))
    26  
    27  	codegenProvider := edit.FindTargetByName(file, "codegen_provider")
    28  	require.NotNil(t, codegenProvider)
    29  
    30  	assert.ElementsMatch(t, []string{"//foo"}, codegenProvider.AttrStrings("deps"))
    31  	assert.ElementsMatch(t, []string{":provider"}, codegenProvider.AttrStrings("srcs"))
    32  
    33  	recursiveCodegenProvider := edit.FindTargetByName(file, "recursive_codegen_provider")
    34  	require.NotNil(t, recursiveCodegenProvider)
    35  
    36  	assert.ElementsMatch(t, []string{"//foo"}, recursiveCodegenProvider.AttrStrings("deps"))
    37  	assert.ElementsMatch(t, []string{":recursive_provider"}, recursiveCodegenProvider.AttrStrings("srcs"))
    38  }