From 6b14b99ea9530cfd20ee22a48326511b1421f262 Mon Sep 17 00:00:00 2001 From: andig Date: Thu, 14 Aug 2025 09:28:06 +0200 Subject: [PATCH] chore: add test --- tariff/helper.go | 4 ++-- tariff/helper_test.go | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/tariff/helper.go b/tariff/helper.go index 1cf8902d2..383e62e51 100644 --- a/tariff/helper.go +++ b/tariff/helper.go @@ -81,9 +81,9 @@ type runnable interface { func runOrError[T any, I interface { *T runnable -}](t *T) (*T, error) { +}](t I) (*T, error) { done := make(chan error) - go I(t).run(done) + go t.run(done) if err := <-done; err != nil { return nil, err diff --git a/tariff/helper_test.go b/tariff/helper_test.go index c4d571344..f2555dced 100644 --- a/tariff/helper_test.go +++ b/tariff/helper_test.go @@ -1,6 +1,7 @@ package tariff import ( + "errors" "testing" "time" @@ -55,3 +56,28 @@ func TestMergeRatesAfter(t *testing.T) { assert.Equal(t, tc.expected, res) } } + +type runner struct { + res error +} + +func (r *runner) run(done chan error) { + if r.res == nil { + close(done) + } else { + done <- r.res + } +} + +func TestRunOrQError(t *testing.T) { + { + res, err := runOrError(&runner{nil}) + require.NoError(t, err) + require.NotNil(t, res) + } + { + res, err := runOrError(&runner{errors.New("foo")}) + require.Error(t, err) + require.Nil(t, res) + } +}