aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWGH <wgh@torlan.ru>2019-08-12 05:17:25 +0300
committerLunny Xiao <xiaolunwen@gmail.com>2019-08-12 10:17:25 +0800
commit98fd085039fe6c392ecf68298f3ad41e87950cd3 (patch)
treeff019c0f67e1d3773172f97302cfbed1f1fd9df0
parente9bb75d8d18ba88dc26e4c4af6dc66812a9b8fb6 (diff)
downloadgitea-98fd085039fe6c392ecf68298f3ad41e87950cd3.tar.gz
gitea-98fd085039fe6c392ecf68298f3ad41e87950cd3.zip
Fix lax comparison in validation tests (#7815)
If you add t.Logf("%+v %+v", actual, testCase.expectedErrors) to the test code, you'll notice that only Errors' Messages are being compared: --- PASS: Test_ValidURLValidation/Invalid_schema (0.00s) binding_test.go:43: [Url] [Url] FieldNames and Classification are ignored in comparison. Moreover, an Errors slice with a single Error with empty message is formatted as '[]' (the same as empty slice), which is also error-prone. I discovered this when working on #7791 when one test which was not supposed to pass did pass. https://play.golang.org/p/qC4wVLrm4NG This commit changes the test to do the comparison properly.
-rw-r--r--modules/validation/binding_test.go8
1 files changed, 6 insertions, 2 deletions
diff --git a/modules/validation/binding_test.go b/modules/validation/binding_test.go
index f55b09266d..de964a5488 100644
--- a/modules/validation/binding_test.go
+++ b/modules/validation/binding_test.go
@@ -5,7 +5,6 @@
package validation
import (
- "fmt"
"net/http"
"net/http/httptest"
"testing"
@@ -37,7 +36,12 @@ func performValidationTest(t *testing.T, testCase validationTestCase) {
m := macaron.Classic()
m.Post(testRoute, binding.Validate(testCase.data), func(actual binding.Errors) {
- assert.Equal(t, fmt.Sprintf("%+v", testCase.expectedErrors), fmt.Sprintf("%+v", actual))
+ // see https://github.com/stretchr/testify/issues/435
+ if actual == nil {
+ actual = binding.Errors{}
+ }
+
+ assert.Equal(t, testCase.expectedErrors, actual)
})
req, err := http.NewRequest("POST", testRoute, nil)