From 72e20bd3955478ee682ecee356143b65ed0f96c0 Mon Sep 17 00:00:00 2001
From: Volker Schukai <volker.schukai@schukai.com>
Date: Sun, 18 Sep 2022 11:34:49 +0200
Subject: [PATCH] bugfix wrong return value of function
 newUnsupportedReflectKindError

---
 error.go      |  4 +--
 error_test.go | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 75 insertions(+), 2 deletions(-)
 create mode 100644 error_test.go

diff --git a/error.go b/error.go
index e8434d6..8d9f5ee 100644
--- a/error.go
+++ b/error.go
@@ -28,7 +28,7 @@ func newPathAlreadyExistsError(path string) PathAlreadyExistsError {
 	return PathAlreadyExistsError(errors.New("files " + path + " already exists"))
 }
 
-// PathDoesNotExistError is returned when a files does not exist
+// PathDoesNotExistError is returned when a files do not exist
 type PathDoesNotExistError error
 
 func newPathDoesNotExistError(path string) PathDoesNotExistError {
@@ -59,7 +59,7 @@ func (s *setting[C]) ResetErrors() *setting[C] {
 // At the reflect level, some types are not supported
 type UnsupportedReflectKindError error
 
-func newUnsupportedReflectKindError(t reflect.Type) UnsupportedTypeError {
+func newUnsupportedReflectKindError(t reflect.Type) UnsupportedReflectKindError {
 	return UnsupportedReflectKindError(errors.New("type " + t.String() + " is not supported"))
 }
 
diff --git a/error_test.go b/error_test.go
new file mode 100644
index 0000000..877004f
--- /dev/null
+++ b/error_test.go
@@ -0,0 +1,73 @@
+package configuration
+
+import (
+	"github.com/stretchr/testify/assert"
+	"reflect"
+	"testing"
+)
+
+func TestResetErrors(t *testing.T) {
+
+	defaults := ConfigStruct2{
+		A: "Hello!",
+	}
+
+	c := New(defaults)
+
+	assert.False(t, c.HasError())
+	c.SetDefaultDirectories()
+	assert.True(t, c.HasError())
+	c.ResetErrors()
+	assert.False(t, c.HasError())
+}
+
+func TestNewFlagDoesNotExistError(t *testing.T) {
+	err := newFlagDoesNotExistError("flag")
+	_, ok := err.(FlagDoesNotExistError)
+	assert.True(t, ok)
+}
+
+func TestNewPathAlreadyExistsError(t *testing.T) {
+	err := newPathAlreadyExistsError("flag")
+	_, ok := err.(PathAlreadyExistsError)
+	assert.True(t, ok)
+}
+
+func TestNewPathDoesNotExistError(t *testing.T) {
+	err := newPathDoesNotExistError("flag")
+	_, ok := err.(PathDoesNotExistError)
+	assert.True(t, ok)
+}
+
+func TestNewFormatNotSupportedError(t *testing.T) {
+	err := newFormatNotSupportedError(Yaml)
+	_, ok := err.(FormatNotSupportedError)
+	assert.True(t, ok)
+}
+
+func TestNewUnsupportedTypeError(t *testing.T) {
+	x := reflect.TypeOf("string")
+	err := newUnsupportedTypeError(x)
+	_, ok := err.(UnsupportedTypeError)
+	assert.True(t, ok)
+}
+
+func TestNewUnsupportedReflectKindError(t *testing.T) {
+	x := reflect.TypeOf("string")
+	err := newUnsupportedReflectKindError(x)
+	_, ok := err.(UnsupportedReflectKindError)
+	assert.True(t, ok)
+}
+
+func TestNewFlagNotFoundError(t *testing.T) {
+	err := newFlagNotFoundError("flag")
+	_, ok := err.(FlagNotFoundError)
+	assert.True(t, ok)
+}
+
+func TestNewMismatchedTypeError(t *testing.T) {
+	x := reflect.TypeOf("string")
+	err := newMismatchedTypeError(x, x)
+	_, ok := err.(MismatchedTypeError)
+	assert.True(t, ok)
+}
-- 
GitLab