Commit 5a95f64

mo khan <mo@mokhan.ca>
2022-09-24 02:45:54
feat: add helpers to check for error
1 parent baccb7a
Changed files (2)
pkg/x/error.go
@@ -0,0 +1,12 @@
+package x
+
+func Check(err error) {
+	if err != nil {
+		panic(err)
+	}
+}
+
+func Must[T any](item T, err error) T {
+	Check(err)
+	return item
+}
pkg/x/error_test.go
@@ -0,0 +1,36 @@
+package x
+
+import (
+	"errors"
+	"testing"
+
+	"github.com/stretchr/testify/assert"
+)
+
+func TestCheck(t *testing.T) {
+	t.Run("panics when given an error", func(t *testing.T) {
+		assert.Panics(t, func() {
+			Check(errors.New("Ooops..."))
+		})
+	})
+
+	t.Run("does not panic", func(t *testing.T) {
+		assert.NotPanics(t, func() {
+			Check(nil)
+		})
+	})
+}
+
+func TestMust(t *testing.T) {
+	t.Run("panics when given an error", func(t *testing.T) {
+		assert.Panics(t, func() {
+			Must(42, errors.New("Ooops..."))
+		})
+	})
+
+	t.Run("returns the value", func(t *testing.T) {
+		assert.NotPanics(t, func() {
+			assert.Equal(t, 42, Must(42, nil))
+		})
+	})
+}