From 09b97e0b6614a65ccb2a14696e37921380788a89 Mon Sep 17 00:00:00 2001 From: Dan Jones Date: Thu, 13 Nov 2025 15:07:13 -0600 Subject: [PATCH] =?UTF-8?q?=E2=9C=85=20Add=20tests=20for=20Unwrap=20method?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- waiterr_test.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/waiterr_test.go b/waiterr_test.go index 293f7dc..3c74feb 100644 --- a/waiterr_test.go +++ b/waiterr_test.go @@ -64,3 +64,31 @@ func TestWaitForErrorNoErr(t *testing.T) { err := we.WaitForError() be.Err(t, err, nil) } + +func TestUnwrap(tt *testing.T) { + tt.Run("two errors", func(t *testing.T) { + we := new(waiterr.WaitErr) + er1 := errors.New("error one") + er2 := errors.New("error two") + + we.Go(func() error { return er1 }) + we.Go(func() error { return nil }) + we.Go(func() error { return er2 }) + we.Go(func() error { return nil }) + + _ = we.Wait() // Ensure all goroutines complete + + unwrapped := we.Unwrap() + be.Equal(t, len(unwrapped), 2) + be.True(t, (unwrapped[0] == er1 && unwrapped[1] == er2) || (unwrapped[0] == er2 && unwrapped[1] == er1)) + + }) + + tt.Run("no errors", func(t *testing.T) { + weNoErr := new(waiterr.WaitErr) + weNoErr.Go(func() error { return nil }) + weNoErr.Go(func() error { return nil }) + _ = weNoErr.Wait() + be.Equal(t, weNoErr.Unwrap(), nil) + }) +}