/
uzer_007
/
Rixea
Обзор
Документация
Войти
/
uzer_007
/
Rixea
Код
Запросы
0
Задачи
Вики
Пакеты
5
Релизы
2
CI/CD
Аналитика
Безопасность
master
modules/validation/binding_test.go
62 строки
2 KB
uzer_007
feat: первая версия Rixea
02 авг 2026, 22:16
02 авг 2026, 22:16
d4f7504
Код
Авторство
О чём код?
// Copyright 2026 Uzer_007. All rights reserved. // SPDX-License-Identifier: MIT package validation import ( "net/http" "net/http/httptest" "testing" "gitverse.ru/uzer_007/Rixea/modules/binding" "github.com/stretchr/testify/assert" ) const ( testRoute = "/test" ) type ( validationTestCase struct { description string data any expectedErrors binding.Errors } TestForm struct { BranchName string `form:"BranchName" binding:"GitRefName"` URL string `form:"ValidUrl" binding:"ValidUrl"` GlobPattern string `form:"GlobPattern" binding:"GlobPattern"` RegexPattern string `form:"RegexPattern" binding:"RegexPattern"` } ) func performValidationTest(t *testing.T, testCase validationTestCase) { httpRecorder := httptest.NewRecorder() m := http.NewServeMux() m.HandleFunc(http.MethodPost+" "+testRoute, func(resp http.ResponseWriter, req *http.Request) { actual := binding.Validate(req, testCase.data) // see https://github.com/stretchr/testify/issues/435 if actual == nil { actual = binding.Errors{} } assert.Equal(t, testCase.expectedErrors, actual) }) req, err := http.NewRequest(http.MethodPost, testRoute, nil) if err != nil { panic(err) } req.Header.Add("Content-Type", "x-www-form-urlencoded") m.ServeHTTP(httpRecorder, req) switch httpRecorder.Code { case http.StatusNotFound: panic("Routing is messed up in test fixture (got 404): check methods and paths") case http.StatusInternalServerError: panic("Something bad happened on '" + testCase.description + "'") } }