summaryrefslogtreecommitdiff
path: root/workhorse/internal/gitaly/unmarshal_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'workhorse/internal/gitaly/unmarshal_test.go')
-rw-r--r--workhorse/internal/gitaly/unmarshal_test.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/workhorse/internal/gitaly/unmarshal_test.go b/workhorse/internal/gitaly/unmarshal_test.go
new file mode 100644
index 00000000000..e2256903339
--- /dev/null
+++ b/workhorse/internal/gitaly/unmarshal_test.go
@@ -0,0 +1,35 @@
+package gitaly
+
+import (
+ "testing"
+
+ "github.com/stretchr/testify/require"
+ "gitlab.com/gitlab-org/gitaly/proto/go/gitalypb"
+)
+
+func TestUnmarshalJSON(t *testing.T) {
+ testCases := []struct {
+ desc string
+ in string
+ out gitalypb.Repository
+ }{
+ {
+ desc: "basic example",
+ in: `{"relative_path":"foo/bar.git"}`,
+ out: gitalypb.Repository{RelativePath: "foo/bar.git"},
+ },
+ {
+ desc: "unknown field",
+ in: `{"relative_path":"foo/bar.git","unknown_field":12345}`,
+ out: gitalypb.Repository{RelativePath: "foo/bar.git"},
+ },
+ }
+
+ for _, tc := range testCases {
+ t.Run(tc.desc, func(t *testing.T) {
+ result := gitalypb.Repository{}
+ require.NoError(t, UnmarshalJSON(tc.in, &result))
+ require.Equal(t, tc.out, result)
+ })
+ }
+}