summaryrefslogtreecommitdiff
path: root/pkg
diff options
context:
space:
mode:
authormo khan <mo@mokhan.ca>2024-05-18 12:20:35 -0600
committermo khan <mo@mokhan.ca>2024-05-18 12:20:35 -0600
commitb55760aaa22674b0de3c148eafe13899de2b6041 (patch)
treeff689481b121b892498c9e62ae6e9bb24423c02c /pkg
parent41fe3a65860c6d9572e4dde4682d8233a3bd3ba3 (diff)
refactor: extract func to parse issues
Diffstat (limited to 'pkg')
-rw-r--r--pkg/gitlab/issue.go10
-rw-r--r--pkg/gitlab/issue_test.go11
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)
})
})
}