github.com/ismailbayram/bigpicture@v0.0.0-20231225173155-e4b21f5efcff/internal/browser/go_test.go (about)

     1  package browser
     2  
     3  import (
     4  	"github.com/ismailbayram/bigpicture/internal/graph"
     5  	"github.com/stretchr/testify/assert"
     6  	"os"
     7  	"testing"
     8  )
     9  
    10  func TestGoBrowser_GetModuleName(t *testing.T) {
    11  	os.Chdir("../..")
    12  
    13  	browser := &GoBrowser{
    14  		ignoredPaths: []string{},
    15  		tree:         nil,
    16  	}
    17  
    18  	moduleName := browser.getModuleName()
    19  	assert.Equal(t, "github.com/ismailbayram/bigpicture", moduleName)
    20  }
    21  
    22  func TestGoBrowser_ParseFile(t *testing.T) {
    23  	browser := &GoBrowser{
    24  		ignoredPaths: []string{},
    25  		tree:         nil,
    26  		moduleName:   "github.com/ismailbayram/bigpicture",
    27  	}
    28  	parentNode := graph.NewNode("bigpicture", "./", graph.Dir, nil)
    29  	node := browser.parseFile("main.go", parentNode)
    30  	assert.NotNil(t, node)
    31  	assert.Equal(t, "main.go", node.Path)
    32  	assert.Equal(t, "main", node.PackageName)
    33  	assert.Equal(t, parentNode.PackageName, node.PackageName)
    34  
    35  	assert.Equal(t, "/internal/browser", node.ImportRaw[0])
    36  	assert.Equal(t, "/internal/config", node.ImportRaw[1])
    37  	assert.Equal(t, "/internal/graph", node.ImportRaw[2])
    38  	assert.Equal(t, "/internal/server", node.ImportRaw[3])
    39  
    40  	assert.Equal(t, 110, node.LineCount)
    41  }
    42  
    43  func TestGoBrowser_Browse(t *testing.T) {
    44  	browser := NewBrowser(LangGo, graph.NewTree("root"), []string{}, "/").(*GoBrowser)
    45  
    46  	browser.Browse(".")
    47  	assert.Equal(t, "github.com/ismailbayram/bigpicture", browser.moduleName)
    48  	assert.NotEqual(t, 1, len(browser.tree.Nodes))
    49  }
    50  
    51  func TestGoBrowser_browse(t *testing.T) {
    52  	browser := NewBrowser(
    53  		LangGo,
    54  		graph.NewTree("root"),
    55  		[]string{"internal/browser/pyproject", "internal/browser/javaproject"},
    56  		"/",
    57  	).(*GoBrowser)
    58  
    59  	browser.browse("./internal/browser", browser.tree.Root)
    60  	assert.Equal(t, 9, len(browser.tree.Nodes))
    61  
    62  	browser = NewBrowser(
    63  		LangGo,
    64  		graph.NewTree("root"),
    65  		[]string{},
    66  		"/",
    67  	).(*GoBrowser)
    68  
    69  	browser.browse("./internal/config", browser.tree.Root)
    70  	assert.Equal(t, 3, len(browser.tree.Nodes))
    71  	assert.Equal(t, 94, browser.tree.Root.LineCount)
    72  }