package multierror

import (
	"errors"
	"fmt"
	"testing"

	"gotest.tools/v3/assert"
)

func TestErrorJoin(t *testing.T) {
	t.Run("single", func(t *testing.T) {
		err := Join(fmt.Errorf("invalid config: %w", Join(errors.New("foo"))))
		const expected = `invalid config: foo`
		assert.Equal(t, err.Error(), expected)
	})
	t.Run("multiple", func(t *testing.T) {
		err := Join(errors.New("foobar"), fmt.Errorf("invalid config: \n%w", Join(errors.New("foo"), errors.New("bar"))))
		const expected = `* foobar
* invalid config: 
	* foo
	* bar`
		assert.Equal(t, err.Error(), expected)
	})
}