Merge remote-tracking branch 'upstream/master'
diff --git a/chain_test.go b/chain_test.go index e2bf501..f1cf749 100644 --- a/chain_test.go +++ b/chain_test.go
@@ -4,6 +4,7 @@ import ( "net/http" "net/http/httptest" + "reflect" "testing" "github.com/stretchr/testify/assert" @@ -21,6 +22,14 @@ } } +// Not recommended (https://golang.org/pkg/reflect/#Value.Pointer), +// but the best we can do. +func funcsEqual(f1, f2 interface{}) bool { + val1 := reflect.ValueOf(f1) + val2 := reflect.ValueOf(f2) + return val1.Pointer() == val2.Pointer() +} + var testApp = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { w.Write([]byte("app\n")) }) @@ -37,8 +46,8 @@ slice := []Constructor{c1, c2} chain := New(slice...) - assert.Equal(t, chain.constructors[0], slice[0]) - assert.Equal(t, chain.constructors[1], slice[1]) + assert.True(t, funcsEqual(chain.constructors[0], slice[0])) + assert.True(t, funcsEqual(chain.constructors[1], slice[1])) } func TestThenWorksWithNoMiddleware(t *testing.T) { @@ -46,7 +55,7 @@ chain := New() final := chain.Then(testApp) - assert.Equal(t, final, testApp) + assert.True(t, funcsEqual(final, testApp)) }) }