From 0966c96ef0bcba9de0c135f9d0a741fc14fcd334 Mon Sep 17 00:00:00 2001 From: Alexander Hudek Date: Sat, 1 May 2021 23:08:49 -0400 Subject: [PATCH] Fixed generated typescript type for []byte. (#701) --- v2/internal/binding/generate.go | 2 + v2/internal/binding/generate_test.go | 87 ++++++++++++++++++++++++++++ 2 files changed, 89 insertions(+) create mode 100644 v2/internal/binding/generate_test.go diff --git a/v2/internal/binding/generate.go b/v2/internal/binding/generate.go index cef5dff68..b47f501ce 100644 --- a/v2/internal/binding/generate.go +++ b/v2/internal/binding/generate.go @@ -144,6 +144,8 @@ func goTypeToJSDocType(input string) string { return "number" case input == "bool": return "boolean" + case input == "[]byte": + return "string" case strings.HasPrefix(input, "[]"): arrayType := goTypeToJSDocType(input[2:]) return "Array.<" + arrayType + ">" diff --git a/v2/internal/binding/generate_test.go b/v2/internal/binding/generate_test.go new file mode 100644 index 000000000..e2751ceb5 --- /dev/null +++ b/v2/internal/binding/generate_test.go @@ -0,0 +1,87 @@ +package binding + +import ( + "testing" +) + +func Test_goTypeToJSDocType(t *testing.T) { + + tests := []struct { + name string + input string + want string + }{ + { + name: "string", + input: "string", + want: "string", + }, + { + name: "error", + input: "error", + want: "Error", + }, + { + name: "int", + input: "int", + want: "number", + }, + { + name: "int32", + input: "int32", + want: "number", + }, + { + name: "uint", + input: "uint", + want: "number", + }, + { + name: "uint32", + input: "uint32", + want: "number", + }, + { + name: "float32", + input: "float32", + want: "number", + }, + { + name: "float64", + input: "float64", + want: "number", + }, + { + name: "bool", + input: "bool", + want: "boolean", + }, + { + name: "[]byte", + input: "[]byte", + want: "string", + }, + { + name: "[]int", + input: "[]int", + want: "Array.", + }, + { + name: "[]bool", + input: "[]bool", + want: "Array.", + }, + { + name: "anything else", + input: "foo", + want: "any", + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := goTypeToJSDocType(tt.input); got != tt.want { + t.Errorf("goTypeToJSDocType() = %v, want %v", got, tt.want) + } + }) + } +}