From 2796a2e82f16ade9872008878cf88299bd66b4e7 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Mon, 31 Jul 2023 15:47:35 +0200 Subject: [feature] Hashtag federation (in/out), hashtag client API endpoints (#2032) * update go-fed * do the things * remove unused columns from tags * update to latest lingo from main * further tag shenanigans * serve stub page at tag endpoint * we did it lads * tests, oh tests, ohhh tests, oh tests (doo doo doo doo) * swagger docs * document hashtag usage + federation * instanceGet * don't bother parsing tag href * rename whereStartsWith -> whereStartsLike * remove GetOrCreateTag * dont cache status tag timelineability --- internal/validate/tag_test.go | 93 ------------------------------------------- 1 file changed, 93 deletions(-) delete mode 100644 internal/validate/tag_test.go (limited to 'internal/validate/tag_test.go') diff --git a/internal/validate/tag_test.go b/internal/validate/tag_test.go deleted file mode 100644 index 43726fd5f..000000000 --- a/internal/validate/tag_test.go +++ /dev/null @@ -1,93 +0,0 @@ -// GoToSocial -// Copyright (C) GoToSocial Authors admin@gotosocial.org -// SPDX-License-Identifier: AGPL-3.0-or-later -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Affero General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Affero General Public License for more details. -// -// You should have received a copy of the GNU Affero General Public License -// along with this program. If not, see . - -package validate_test - -import ( - "testing" - "time" - - "github.com/stretchr/testify/suite" - "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" - "github.com/superseriousbusiness/gotosocial/internal/validate" - "github.com/superseriousbusiness/gotosocial/testrig" -) - -func happyTag() *gtsmodel.Tag { - return >smodel.Tag{ - ID: "01FE91RJR88PSEEE30EV35QR8N", - CreatedAt: time.Now(), - UpdatedAt: time.Now(), - URL: "https://example.org/tags/some_tag", - Name: "some_tag", - FirstSeenFromAccountID: "01FE91SR5P2GW06K3AJ98P72MT", - Useable: testrig.TrueBool(), - Listable: testrig.TrueBool(), - LastStatusAt: time.Now(), - } -} - -type TagValidateTestSuite struct { - suite.Suite -} - -func (suite *TagValidateTestSuite) TestValidateTagHappyPath() { - // no problem here - t := happyTag() - err := validate.Struct(t) - suite.NoError(err) -} - -func (suite *TagValidateTestSuite) TestValidateTagNoName() { - t := happyTag() - t.Name = "" - - err := validate.Struct(t) - suite.EqualError(err, "Key: 'Tag.Name' Error:Field validation for 'Name' failed on the 'required' tag") -} - -func (suite *TagValidateTestSuite) TestValidateTagBadURL() { - t := happyTag() - - t.URL = "" - err := validate.Struct(t) - suite.EqualError(err, "Key: 'Tag.URL' Error:Field validation for 'URL' failed on the 'required' tag") - - t.URL = "no-schema.com" - err = validate.Struct(t) - suite.EqualError(err, "Key: 'Tag.URL' Error:Field validation for 'URL' failed on the 'url' tag") - - t.URL = "justastring" - err = validate.Struct(t) - suite.EqualError(err, "Key: 'Tag.URL' Error:Field validation for 'URL' failed on the 'url' tag") - - t.URL = "https://aaa\n\n\naaaaaaaa" - err = validate.Struct(t) - suite.EqualError(err, "Key: 'Tag.URL' Error:Field validation for 'URL' failed on the 'url' tag") -} - -func (suite *TagValidateTestSuite) TestValidateTagNoFirstSeenFromAccountID() { - t := happyTag() - t.FirstSeenFromAccountID = "" - - err := validate.Struct(t) - suite.NoError(err) -} - -func TestTagValidateTestSuite(t *testing.T) { - suite.Run(t, new(TagValidateTestSuite)) -} -- cgit v1.2.3