aboutsummaryrefslogtreecommitdiff
path: root/internal/testhelpers/assert
diff options
context:
space:
mode:
authorStefan Majewsky <majewsky@gmx.net>2026-04-24 15:46:24 +0200
committerStefan Majewsky <majewsky@gmx.net>2026-04-24 16:10:09 +0200
commite45a8be0dcfc375963a061d83e04429995053da1 (patch)
tree55a5f39180be3d289ccbd1f406022d3a72c13034 /internal/testhelpers/assert
parent027641ef9efec9ed5dfc463d9c2f38c32716d9b5 (diff)
downloadgo-oblast-e45a8be0dcfc375963a061d83e04429995053da1.tar.gz
exclude testhelpers from coverage testing
Diffstat (limited to 'internal/testhelpers/assert')
-rw-r--r--internal/testhelpers/assert/assert.go63
1 files changed, 63 insertions, 0 deletions
diff --git a/internal/testhelpers/assert/assert.go b/internal/testhelpers/assert/assert.go
new file mode 100644
index 0000000..6e641ca
--- /dev/null
+++ b/internal/testhelpers/assert/assert.go
@@ -0,0 +1,63 @@
+// SPDX-FileCopyrightText: 2026 Stefan Majewsky <majewsky@gmx.net>
+// SPDX-License-Identifier: Apache-2.0
+
+package assert
+
+import (
+ "cmp"
+ "errors"
+ "reflect"
+ "testing"
+)
+
+// Equal is a test assertion.
+func Equal[V comparable](t testing.TB, actual, expected V) {
+ t.Helper()
+ if actual != expected {
+ t.Errorf("expected %#v", expected)
+ t.Errorf(" but got %#v", actual)
+ }
+}
+
+// DeepEqual is a test assertion.
+func DeepEqual[V any](t testing.TB, actual, expected V) {
+ t.Helper()
+ if !reflect.DeepEqual(actual, expected) {
+ t.Errorf("expected %#v", expected)
+ t.Errorf(" but got %#v", actual)
+ }
+}
+
+// ErrEqual is a test assertion.
+func ErrEqual(t testing.TB, actual error, expected string) {
+ t.Helper()
+ Equal(t, cmp.Or(actual, errors.New("<success>")).Error(), expected)
+}
+
+// SliceEqual is a test assertion.
+func SliceEqual[V comparable](t testing.TB, actual []V, expected ...V) {
+ t.Helper()
+ if len(actual) != len(expected) {
+ t.Errorf("length mismatch: expected %#v, but got %#v", expected, actual)
+ }
+ for idx := range actual {
+ if actual[idx] != expected[idx] {
+ t.Errorf("element %d: expected %#v", idx, expected[idx])
+ t.Errorf("element %d: but got %#v", idx, actual[idx])
+ }
+ }
+}
+
+// SliceDeepEqual is a test assertion.
+func SliceDeepEqual[V any](t testing.TB, actual []V, expected ...V) {
+ t.Helper()
+ if len(actual) != len(expected) {
+ t.Errorf("length mismatch: expected %#v, but got %#v", expected, actual)
+ }
+ for idx := range actual {
+ if !reflect.DeepEqual(actual[idx], expected[idx]) {
+ t.Errorf("element %d: expected %#v", idx, expected[idx])
+ t.Errorf("element %d: but got %#v", idx, actual[idx])
+ }
+ }
+}