1
0

parser_test.go 911 B

12345678910111213141516171819202122232425262728293031323334353637
  1. package parser
  2. import (
  3. _ "embed"
  4. "testing"
  5. "github.com/stretchr/testify/assert"
  6. "github.com/zeromicro/go-zero/tools/goctl/api/spec"
  7. )
  8. //go:embed testdata/test.api
  9. var testApi string
  10. func TestParseContent(t *testing.T) {
  11. sp, err := ParseContent(testApi)
  12. assert.Nil(t, err)
  13. assert.Equal(t, spec.Doc{`// syntax doc`}, sp.Syntax.Doc)
  14. assert.Equal(t, spec.Doc{`// syntax comment`}, sp.Syntax.Comment)
  15. for _, tp := range sp.Types {
  16. if tp.Name() == "Request" {
  17. assert.Equal(t, []string{`// type doc`}, tp.Documents())
  18. }
  19. }
  20. for _, e := range sp.Service.Routes() {
  21. if e.Handler == "GreetHandler" {
  22. assert.Equal(t, spec.Doc{"// handler doc"}, e.HandlerDoc)
  23. assert.Equal(t, spec.Doc{"// handler comment"}, e.HandlerComment)
  24. }
  25. }
  26. }
  27. func TestMissingService(t *testing.T) {
  28. sp, err := ParseContent("")
  29. assert.Nil(t, err)
  30. err = sp.Validate()
  31. assert.Equal(t, spec.ErrMissingService, err)
  32. }