Files
trufflehog/pkg/log/codeowners_test.go
Miccah Castorina 31402a3a96 Implement CodeOwnersLeveler
CodeOwnersLeveler is a log leveler that can be dynamically controlled by
the owners found in CODEOWNERS. Levels can be independently set for each
owner, and logs will be checked based on the owner of the function that
emitted them.
2026-02-06 19:07:48 -08:00

69 lines
1.7 KiB
Go

package log
import (
"testing"
"github.com/stretchr/testify/require"
)
func TestParseCodeOwners(t *testing.T) {
_, err := ParseCodeOwners(`
* @trufflesecurity/product-eng
pkg/sources/ @trufflesecurity/Scanning
pkg/writers/ @trufflesecurity/Scanning
`)
require.NoError(t, err)
}
func TestCodeOwners_OwnersDoNotRepeat(t *testing.T) {
co, err := ParseCodeOwners(`
* @trufflesecurity/product-eng
pkg/sources/ @trufflesecurity/Scanning
pkg/writers/ @trufflesecurity/Scanning
`)
require.NoError(t, err)
owners := co.Owners()
require.Len(t, owners, 2)
require.Contains(t, owners, "@trufflesecurity/product-eng")
require.Contains(t, owners, "@trufflesecurity/Scanning")
}
func TestCodeOwners_OwnersOf(t *testing.T) {
co, err := ParseCodeOwners(`
* @trufflesecurity/product-eng
pkg/sources/ @trufflesecurity/Scanning
pkg/writers/ @trufflesecurity/Scanning
`)
require.NoError(t, err)
{
owners, err := co.OwnersOf("github.com/trufflesecurity/trufflehog/v3/pkg/sources/filesystem.Foo")
require.NoError(t, err)
require.Equal(t, []string{"@trufflesecurity/Scanning"}, owners)
}
{
owners, err := co.OwnersOf("main.main")
require.NoError(t, err)
require.Equal(t, []string{"@trufflesecurity/product-eng"}, owners)
}
}
func TestCodeOwners_MultipleOwnersOf(t *testing.T) {
co, err := ParseCodeOwners("* @foo @bar")
require.NoError(t, err)
owners, err := co.OwnersOf("main.main")
require.NoError(t, err)
require.Equal(t, []string{"@foo", "@bar"}, owners)
}
func TestCodeOwners_NoOwnersOf(t *testing.T) {
co, err := ParseCodeOwners("pkg/ @foo @bar")
require.NoError(t, err)
owners, err := co.OwnersOf("main.main")
require.NoError(t, err)
require.Len(t, owners, 0)
}