12345678910111213141516171819202122232425262728293031323334353637 |
- package parser
- import (
- _ "embed"
- "testing"
- "github.com/stretchr/testify/assert"
- "github.com/wuntsong-org/go-zero-plus/tools/goctlwt/api/spec"
- )
- //go:embed testdata/test.api
- var testApi string
- func TestParseContent(t *testing.T) {
- sp, err := ParseContent(testApi)
- assert.Nil(t, err)
- assert.Equal(t, spec.Doc{`// syntax doc`}, sp.Syntax.Doc)
- assert.Equal(t, spec.Doc{`// syntax comment`}, sp.Syntax.Comment)
- for _, tp := range sp.Types {
- if tp.Name() == "Request" {
- assert.Equal(t, []string{`// type doc`}, tp.Documents())
- }
- }
- for _, e := range sp.Service.Routes() {
- if e.Handler == "GreetHandler" {
- assert.Equal(t, spec.Doc{"// handler doc"}, e.HandlerDoc)
- assert.Equal(t, spec.Doc{"// handler comment"}, e.HandlerComment)
- }
- }
- }
- func TestMissingService(t *testing.T) {
- sp, err := ParseContent("")
- assert.Nil(t, err)
- err = sp.Validate()
- assert.Equal(t, spec.ErrMissingService, err)
- }
|