| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package main
- import (
- "bytes"
- "os"
- "path/filepath"
- "strings"
- "testing"
- )
- func TestWalkPackagesExportsAllowedStructsWithoutDIInterfaces(t *testing.T) {
- dir := t.TempDir()
- source := `package service
- type HappLinkGenerator interface {
- Generate()
- }
- type HappLinkResult struct {
- EncryptedLink string
- }
- `
- if err := os.WriteFile(filepath.Join(dir, "service.go"), []byte(source), 0o644); err != nil {
- t.Fatalf("write service fixture: %v", err)
- }
- schemas, aliases, err := walkPackages([]packageRequest{{
- Path: dir,
- StructAllow: setOf("HappLinkResult"),
- }})
- if err != nil {
- t.Fatalf("walk packages: %v", err)
- }
- var generated bytes.Buffer
- if err := emitTypes(&generated, schemas, aliases); err != nil {
- t.Fatalf("emit types: %v", err)
- }
- apiSurface := generated.String()
- if !strings.Contains(apiSurface, "export interface HappLinkResult") {
- t.Fatalf("generated types omit allowed response schema:\n%s", apiSurface)
- }
- if strings.Contains(apiSurface, "HappLinkGenerator") {
- t.Fatalf("generated types expose DI interface:\n%s", apiSurface)
- }
- }
|