Files
RenewCMS/test/seo_output_layering_test.go
T

41 lines
1.1 KiB
Go

package test
import (
"go/parser"
"go/token"
"path/filepath"
"strings"
"testing"
)
func TestSeoOutputLayering(t *testing.T) {
forbidden := []string{"gorm", "net/http", "go-chi", "persistence", "mailer", "api/"}
files := []string{
"seoBody.go", "seoRules.go", "ResolveArticleSEO.go", "CheckArticleSEO.go", "ListSitemap.go", "ListArticles.go",
}
for _, name := range files {
parsed, err := parser.ParseFile(token.NewFileSet(), filepath.Join("..", "internal", "infrastructure", "useCases", name), nil, parser.ImportsOnly)
if err != nil {
t.Fatal(err)
}
for _, spec := range parsed.Imports {
for _, word := range forbidden {
if strings.Contains(spec.Path.Value, word) {
t.Errorf("%s imports %s", name, spec.Path.Value)
}
}
}
}
for _, name := range []string{"seoStatus.go", "seoResolved.go"} {
parsed, err := parser.ParseFile(token.NewFileSet(), filepath.Join("..", "internal", "domain", "article", name), nil, parser.ImportsOnly)
if err != nil {
t.Fatal(err)
}
for _, spec := range parsed.Imports {
if strings.Contains(spec.Path.Value, ".") {
t.Errorf("%s imports %s", name, spec.Path.Value)
}
}
}
}