mirror of
https://github.com/go-gitea/gitea.git
synced 2026-08-15 17:36:00 +00:00
72a9debaff
Clarify the "validation" and "error display" logic. All the copied&pasted `Validate` functions are removed.
31 lines
895 B
Go
31 lines
895 B
Go
// Copyright 2026 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package middleware
|
|
|
|
import (
|
|
"net/http"
|
|
"net/http/httptest"
|
|
"testing"
|
|
|
|
"gitea.dev/modules/translation"
|
|
|
|
"gitea.com/go-chi/binding"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
type testRangeForm struct {
|
|
FormDefaultValidator
|
|
Hours int `binding:"Range(0,1000)"`
|
|
}
|
|
|
|
func TestBuildValidationErrorForUser(t *testing.T) {
|
|
// an out-of-range value must reach its own message instead of the panicking "default" branch
|
|
form := &testRangeForm{Hours: 2000}
|
|
errs := binding.Validate(httptest.NewRequest(http.MethodPost, "/", nil), form)
|
|
errorMessage, errorFieldName, fieldNames := BuildValidationErrorForUser(form, translation.MockLocale{}, errs)
|
|
assert.Equal(t, "form.range_error:form.Hours,0,1000", errorMessage)
|
|
assert.Equal(t, "Hours", errorFieldName)
|
|
assert.Equal(t, []string{"Hours"}, fieldNames)
|
|
}
|