util_test.go 850 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package tsgen
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. "github.com/wuntsong-org/go-zero-plus/tools/goctlwt/api/spec"
  6. )
  7. func TestGenTsType(t *testing.T) {
  8. member := spec.Member{
  9. Name: "foo",
  10. Type: spec.PrimitiveType{RawName: "string"},
  11. Tag: `json:"foo,options=foo|bar|options|123"`,
  12. Comment: "",
  13. Docs: nil,
  14. IsInline: false,
  15. }
  16. ty, err := genTsType(member)
  17. if err != nil {
  18. t.Fatal(err)
  19. }
  20. assert.Equal(t, `'foo' | 'bar' | 'options' | '123'`, ty)
  21. member.IsInline = true
  22. ty, err = genTsType(member)
  23. if err != nil {
  24. t.Fatal(err)
  25. }
  26. assert.Equal(t, `'foo' | 'bar' | 'options' | '123'`, ty)
  27. member.Type = spec.PrimitiveType{RawName: "int"}
  28. member.Tag = `json:"foo,options=1|3|4|123"`
  29. ty, err = genTsType(member)
  30. if err != nil {
  31. t.Fatal(err)
  32. }
  33. assert.Equal(t, `1 | 3 | 4 | 123`, ty)
  34. }