Commit b55760a
Changed files (3)
cmd
stanuki
pkg
gitlab
cmd/stanuki/main.go
@@ -7,7 +7,6 @@ import (
"net/http"
"github.com/xlgmokha/x/pkg/env"
- "github.com/xlgmokha/x/pkg/serde"
"github.com/xlgmokha/x/pkg/x"
"gitlab.com/mokhax/stanuki/pkg/gitlab"
)
@@ -22,7 +21,7 @@ func main() {
if env.Fetch("DUMP", "") != "" {
fmt.Println(string(x.Must(io.ReadAll(response.Body))))
} else {
- issues := x.Must(serde.From[[]gitlab.Issue](response.Body, serde.JSON))
+ issues := x.Must(gitlab.FromIssues(response.Body))
for _, issue := range issues {
fmt.Printf("%v: %v\n", issue.ID, issue.Title)
}
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)
+}
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)
})
})
}