github.com/please-build/puku@v1.7.3-0.20240516143641-f7d7f4941f57/generate/import_test.go (about)

     1  package generate
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func TestImportDir(t *testing.T) {
    11  	fooDir, err := ImportDir("test_project/foo")
    12  	require.NoError(t, err)
    13  
    14  	foo := fooDir["foo.go"]
    15  	fooTest := fooDir["foo_test.go"]
    16  	externalTest := fooDir["external_test.go"]
    17  
    18  	require.NotNil(t, foo)
    19  	require.NotNil(t, fooTest)
    20  	require.NotNil(t, externalTest)
    21  
    22  	assert.Equal(t, foo.Imports, []string{"github.com/example/module"})
    23  	assert.Equal(t, fooTest.Imports, []string{"github.com/stretchr/testify/assert"})
    24  	assert.Equal(t, externalTest.Imports, []string{"github.com/stretchr/testify/require"})
    25  
    26  	assert.False(t, foo.IsTest())
    27  	assert.True(t, fooTest.IsTest())
    28  	assert.True(t, externalTest.IsTest())
    29  
    30  	assert.False(t, foo.IsExternal("foo"))
    31  	assert.False(t, fooTest.IsExternal("foo"))
    32  	assert.True(t, externalTest.IsExternal("foo"))
    33  
    34  	assert.False(t, foo.IsCmd())
    35  	assert.False(t, fooTest.IsCmd())
    36  	assert.False(t, externalTest.IsCmd())
    37  
    38  	mainDir, err := ImportDir("test_project")
    39  	require.NoError(t, err)
    40  
    41  	main := mainDir["main.go"]
    42  	require.NotNil(t, main)
    43  
    44  	require.True(t, main.IsCmd())
    45  	require.False(t, main.IsTest())
    46  	require.False(t, main.IsExternal("test_project"))
    47  }