diff options
Diffstat (limited to 'pkg')
| -rw-r--r-- | pkg/gitlab/issue.go | 10 | ||||
| -rw-r--r-- | pkg/gitlab/issue_test.go | 11 |
2 files changed, 20 insertions, 1 deletions
diff --git a/pkg/gitlab/issue.go b/pkg/gitlab/issue.go index 720a78b..959ade6 100644 --- a/pkg/gitlab/issue.go +++ b/pkg/gitlab/issue.go @@ -1,5 +1,11 @@ package gitlab +import ( + "io" + + "github.com/xlgmokha/x/pkg/serde" +) + type Issue struct { ID int `json:"id"` IID int `json:"iid"` @@ -7,3 +13,7 @@ type Issue struct { Title string `json:"title"` Description string `json:"description"` } + +func FromIssues(r io.Reader) ([]Issue, error) { + return serde.From[[]Issue](r, serde.JSON) +} diff --git a/pkg/gitlab/issue_test.go b/pkg/gitlab/issue_test.go index fd1feeb..029ba4a 100644 --- a/pkg/gitlab/issue_test.go +++ b/pkg/gitlab/issue_test.go @@ -1,15 +1,24 @@ package gitlab import ( + "strings" "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) func TestIssue(t *testing.T) { t.Run("ParseIssues", func(t *testing.T) { t.Run("parses the array of issues from IO", func(t *testing.T) { - assert.Equal(t, false, true) + body := strings.NewReader(`[{"ID":1,"title":"Issue Title"}]`) + + results, err := FromIssues(body) + + require.NoError(t, err) + require.Equal(t, 1, len(results)) + assert.Equal(t, 1, results[0].ID) + assert.Equal(t, "Issue Title", results[0].Title) }) }) } |
