From 62132b9680cbd8cbe6e50a346cc71922812dac00 Mon Sep 17 00:00:00 2001 From: Stefan Majewsky Date: Sat, 27 Jun 2026 23:09:47 +0200 Subject: add func assert.ErrsEqual --- assert/errequal_test.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'assert/errequal_test.go') diff --git a/assert/errequal_test.go b/assert/errequal_test.go index 4bb9080..b97342a 100644 --- a/assert/errequal_test.go +++ b/assert/errequal_test.go @@ -89,3 +89,27 @@ type structTypedError struct { func (e structTypedError) Error() string { return e.Message } + +func TestErrsEqual(t *testing.T) { + // NOTE: ErrsEqual() uses the same basic machinery as ErrEqual(), so we're not comparing all types here. + // We just need to check the machinery of iterating over `actual` and `expected` and dealing with slice length mismatches. + + errs := []error{ + errors.New("first error"), + errors.New("second error"), + } + + assert.ErrsEqual(t, errs, []string{"first error", "second error"}) + expectErrors(t, func(t assert.TestingTB) { + assert.ErrsEqual(t, errs, []string{"second error", "first error"}) + }, ` + in actual[0]: expected "second error", but got "first error" + in actual[1]: expected "first error", but got "second error" + `) + expectErrors(t, func(t assert.TestingTB) { + assert.ErrsEqual(t, errs, []string{"first error"}) + }, `in actual[1]: expected , but got "second error"`) + expectErrors(t, func(t assert.TestingTB) { + assert.ErrsEqual(t, errs, []string{"first error", "second error", "third error"}) + }, `in actual[2]: expected "third error", but got `) +} -- cgit v1.3.1