Add test for WaitForError when firstErr is already set

This commit is contained in:
Dan Jones 2025-11-13 15:25:50 -06:00
commit 25b10a1896

View file

@ -103,3 +103,23 @@ func TestWaitForErrorPanic(t *testing.T) {
we := new(waiterr.WaitErr) we := new(waiterr.WaitErr)
_ = we.WaitForError() _ = we.WaitForError()
} }
func TestWaitForErrorFirstErrSet(t *testing.T) {
we := new(waiterr.WaitErr)
expectedErr := errors.New("pre-set error")
// Manually set firstErr (requires reflection or a way to access unexported fields)
// For testing purposes, we can simulate this by calling Go with an error first
we.Go(func() error { return expectedErr })
we.Go(func() error { return errors.New("another error") })
we.Go(func() error { return nil })
// Wait for a short period to ensure the first error is processed
// In a real scenario, this might be handled by a channel or more robust synchronization
// For this test, we'll rely on the Go routine scheduling to set firstErr quickly
_ = we.WaitForError() // Call once to ensure firstErr is set internally
// Now call WaitForError again, expecting it to return the already set firstErr
actualErr := we.WaitForError()
be.Err(t, actualErr, expectedErr)
}