From f518f649f800e52d32fe53580c528ffa042f7154 Mon Sep 17 00:00:00 2001 From: zowhoey <11893985+zowhoey@users.noreply.github.com> Date: Mon, 6 Mar 2023 09:30:19 +0000 Subject: [feature] Add support for profile fields (#1483) * Add go-playground/form pkg * [feature] Add support for profile fields * Add field attributes test * Validate profile fields form * Add profile field validation tests * Add Field Attributes definition to swagger --------- Co-authored-by: tobi <31960611+tsmethurst@users.noreply.github.com> --- internal/validate/formvalidation_test.go | 34 ++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'internal/validate/formvalidation_test.go') diff --git a/internal/validate/formvalidation_test.go b/internal/validate/formvalidation_test.go index 61f505412..f59bbf753 100644 --- a/internal/validate/formvalidation_test.go +++ b/internal/validate/formvalidation_test.go @@ -25,6 +25,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/gotosocial/internal/api/model" "github.com/superseriousbusiness/gotosocial/internal/validate" ) @@ -284,6 +285,39 @@ func (suite *ValidationTestSuite) TestValidateReason() { } } +func (suite *ValidationTestSuite) TestValidateProfileFieldsCount() { + noFields := []model.UpdateField{} + fewFields := []model.UpdateField{{}, {}} + tooManyFields := []model.UpdateField{{}, {}, {}, {}, {}} + err := validate.ProfileFieldsCount(tooManyFields) + if assert.Error(suite.T(), err) { + assert.Equal(suite.T(), errors.New("cannot have more than 4 profile fields"), err) + } + + err = validate.ProfileFieldsCount(noFields) + assert.NoError(suite.T(), err) + + err = validate.ProfileFieldsCount(fewFields) + assert.NoError(suite.T(), err) +} + +func (suite *ValidationTestSuite) TestValidateProfileField() { + shortProfileField := "pronouns" + tooLongProfileField := "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer eu bibendum elit. Sed ac interdum nisi. Vestibulum vulputate eros quis euismod imperdiet. Nulla sit amet dui sit amet lorem consectetur iaculis. Mauris eget lacinia metus. Curabitur nec dui eleifend massa nunc." + trimmedProfileField := "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer eu bibendum elit. Sed ac interdum nisi. Vestibulum vulputate eros quis euismod imperdiet. Nulla sit amet dui sit amet lorem consectetur iaculis. Mauris eget lacinia metus. Curabitur nec dui " + + validated := validate.ProfileField(&shortProfileField) + assert.Equal(suite.T(), shortProfileField, validated) + + validated = validate.ProfileField(&tooLongProfileField) + assert.Len(suite.T(), validated, 255) + assert.Equal(suite.T(), trimmedProfileField, validated) + + validated = validate.ProfileField(&trimmedProfileField) + assert.Len(suite.T(), validated, 255) + assert.Equal(suite.T(), trimmedProfileField, validated) +} + func TestValidationTestSuite(t *testing.T) { suite.Run(t, new(ValidationTestSuite)) } -- cgit v1.2.3