44 lines
973 B
Go
44 lines
973 B
Go
package ai
|
|
|
|
import (
|
|
"go/ast"
|
|
"go/parser"
|
|
"go/token"
|
|
"os"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestAIBindingsUseDomainNames(t *testing.T) {
|
|
files, err := os.ReadDir(".")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
for _, file := range files {
|
|
name := file.Name()
|
|
if file.IsDir() || !strings.HasSuffix(name, ".go") || strings.HasSuffix(name, "_test.go") {
|
|
continue
|
|
}
|
|
if strings.HasPrefix(name, "current") {
|
|
t.Errorf("%s retains an implementation-generation filename", name)
|
|
}
|
|
parsed, err := parser.ParseFile(token.NewFileSet(), name, nil, 0)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
ast.Inspect(parsed, func(node ast.Node) bool {
|
|
var name string
|
|
switch declaration := node.(type) {
|
|
case *ast.TypeSpec:
|
|
name = declaration.Name.Name
|
|
case *ast.FuncDecl:
|
|
name = declaration.Name.Name
|
|
}
|
|
if strings.Contains(name, "Current") {
|
|
t.Errorf("%s retains an implementation-generation declaration %s", file.Name(), name)
|
|
}
|
|
return true
|
|
})
|
|
}
|
|
}
|