82 lines
1.8 KiB
Go
82 lines
1.8 KiB
Go
// ©AngelaMos | 2026
|
|
// scanner_test.go
|
|
|
|
package scanner
|
|
|
|
import (
|
|
"path/filepath"
|
|
"runtime"
|
|
"testing"
|
|
|
|
"github.com/CarterPerez-dev/bomber/internal/parser"
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func testdataDir(t *testing.T) string {
|
|
t.Helper()
|
|
_, filename, _, ok := runtime.Caller(0)
|
|
require.True(t, ok)
|
|
return filepath.Join(filepath.Dir(filename), "..", "..", "testdata")
|
|
}
|
|
|
|
func TestScanGoProject(t *testing.T) {
|
|
reg := parser.NewRegistry()
|
|
parser.RegisterAll(reg)
|
|
|
|
s := New(reg)
|
|
result, err := s.Scan(filepath.Join(testdataDir(t), "go-project"))
|
|
require.NoError(t, err)
|
|
|
|
assert.Len(t, result.Graphs, 1)
|
|
assert.Greater(t, result.TotalPkgs, 0)
|
|
}
|
|
|
|
func TestScanNodeProject(t *testing.T) {
|
|
reg := parser.NewRegistry()
|
|
parser.RegisterAll(reg)
|
|
|
|
s := New(reg)
|
|
result, err := s.Scan(filepath.Join(testdataDir(t), "node-project"))
|
|
require.NoError(t, err)
|
|
|
|
assert.Len(t, result.Graphs, 1)
|
|
assert.Greater(t, result.TotalPkgs, 0)
|
|
}
|
|
|
|
func TestScanPythonProject(t *testing.T) {
|
|
reg := parser.NewRegistry()
|
|
parser.RegisterAll(reg)
|
|
|
|
s := New(reg)
|
|
result, err := s.Scan(filepath.Join(testdataDir(t), "python-project"))
|
|
require.NoError(t, err)
|
|
|
|
assert.Len(t, result.Graphs, 1)
|
|
assert.Greater(t, result.TotalPkgs, 0)
|
|
}
|
|
|
|
func TestScanMonorepo(t *testing.T) {
|
|
reg := parser.NewRegistry()
|
|
parser.RegisterAll(reg)
|
|
|
|
s := New(reg)
|
|
result, err := s.Scan(filepath.Join(testdataDir(t), "monorepo"))
|
|
require.NoError(t, err)
|
|
|
|
assert.GreaterOrEqual(t, len(result.Graphs), 2)
|
|
assert.GreaterOrEqual(t, len(result.Ecosystems), 2)
|
|
}
|
|
|
|
func TestScanEmptyProject(t *testing.T) {
|
|
reg := parser.NewRegistry()
|
|
parser.RegisterAll(reg)
|
|
|
|
s := New(reg)
|
|
result, err := s.Scan(filepath.Join(testdataDir(t), "empty-project"))
|
|
require.NoError(t, err)
|
|
|
|
assert.Empty(t, result.Graphs)
|
|
assert.Equal(t, 0, result.TotalPkgs)
|
|
}
|