From 36f79e650c3cdf26290c879a4d5169ba1d7aedf4 Mon Sep 17 00:00:00 2001 From: tobi <31960611+tsmethurst@users.noreply.github.com> Date: Mon, 25 Mar 2024 17:20:45 +0100 Subject: [bugfix] Avoid empty public/local timeline queries (#2784) --- internal/processing/timeline/timeline_test.go | 69 +++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 internal/processing/timeline/timeline_test.go (limited to 'internal/processing/timeline/timeline_test.go') diff --git a/internal/processing/timeline/timeline_test.go b/internal/processing/timeline/timeline_test.go new file mode 100644 index 000000000..79626830e --- /dev/null +++ b/internal/processing/timeline/timeline_test.go @@ -0,0 +1,69 @@ +// 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 timeline_test + +import ( + "github.com/stretchr/testify/suite" + "github.com/superseriousbusiness/gotosocial/internal/db" + "github.com/superseriousbusiness/gotosocial/internal/filter/visibility" + "github.com/superseriousbusiness/gotosocial/internal/gtsmodel" + "github.com/superseriousbusiness/gotosocial/internal/processing/timeline" + "github.com/superseriousbusiness/gotosocial/internal/state" + "github.com/superseriousbusiness/gotosocial/internal/typeutils" + "github.com/superseriousbusiness/gotosocial/testrig" +) + +type TimelineStandardTestSuite struct { + suite.Suite + db db.DB + state state.State + + // standard suite models + testAccounts map[string]*gtsmodel.Account + + // module being tested + timeline timeline.Processor +} + +func (suite *TimelineStandardTestSuite) SetupSuite() { + suite.testAccounts = testrig.NewTestAccounts() +} + +func (suite *TimelineStandardTestSuite) SetupTest() { + suite.state.Caches.Init() + testrig.StartNoopWorkers(&suite.state) + + testrig.InitTestConfig() + testrig.InitTestLog() + + suite.db = testrig.NewTestDB(&suite.state) + suite.state.DB = suite.db + + suite.timeline = timeline.New( + &suite.state, + typeutils.NewConverter(&suite.state), + visibility.NewFilter(&suite.state), + ) + + testrig.StandardDBSetup(suite.db, suite.testAccounts) +} + +func (suite *TimelineStandardTestSuite) TearDownTest() { + testrig.StandardDBTeardown(suite.db) + testrig.StopWorkers(&suite.state) +} -- cgit v1.2.3