Commit 5a95f64
Changed files (2)
pkg
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))
+ })
+ })
+}