diff options
Diffstat (limited to 'internal/timeline/manager_test.go')
-rw-r--r-- | internal/timeline/manager_test.go | 58 |
1 files changed, 30 insertions, 28 deletions
diff --git a/internal/timeline/manager_test.go b/internal/timeline/manager_test.go index 8eb92a4e3..18ed97f7a 100644 --- a/internal/timeline/manager_test.go +++ b/internal/timeline/manager_test.go @@ -62,88 +62,90 @@ func (suite *ManagerTestSuite) TearDownTest() { } func (suite *ManagerTestSuite) TestManagerIntegration() { + ctx := context.Background() + testAccount := suite.testAccounts["local_account_1"] // should start at 0 - indexedLen := suite.manager.GetIndexedLength(context.Background(), testAccount.ID) + indexedLen := suite.manager.GetIndexedLength(ctx, testAccount.ID) suite.Equal(0, indexedLen) // oldestIndexed should be empty string since there's nothing indexed - oldestIndexed, err := suite.manager.GetOldestIndexedID(context.Background(), testAccount.ID) + oldestIndexed, err := suite.manager.GetOldestIndexedID(ctx, testAccount.ID) suite.NoError(err) suite.Empty(oldestIndexed) // trigger status preparation - err = suite.manager.PrepareXFromTop(context.Background(), testAccount.ID, 20) + err = suite.manager.PrepareXFromTop(ctx, testAccount.ID, 20) suite.NoError(err) - // local_account_1 can see 15 statuses out of the testrig statuses in its home timeline - indexedLen = suite.manager.GetIndexedLength(context.Background(), testAccount.ID) - suite.Equal(15, indexedLen) + // local_account_1 can see 16 statuses out of the testrig statuses in its home timeline + indexedLen = suite.manager.GetIndexedLength(ctx, testAccount.ID) + suite.Equal(16, indexedLen) // oldest should now be set - oldestIndexed, err = suite.manager.GetOldestIndexedID(context.Background(), testAccount.ID) + oldestIndexed, err = suite.manager.GetOldestIndexedID(ctx, testAccount.ID) suite.NoError(err) - suite.Equal("01F8MH82FYRXD2RC6108DAJ5HB", oldestIndexed) + suite.Equal("01F8MH75CBF9JFX4ZAD54N0W0R", oldestIndexed) // get hometimeline - statuses, err := suite.manager.GetTimeline(context.Background(), testAccount.ID, "", "", "", 20, false) + statuses, err := suite.manager.GetTimeline(ctx, testAccount.ID, "", "", "", 20, false) suite.NoError(err) - suite.Len(statuses, 15) + suite.Len(statuses, 16) // now wipe the last status from all timelines, as though it had been deleted by the owner - err = suite.manager.WipeItemFromAllTimelines(context.Background(), "01F8MH82FYRXD2RC6108DAJ5HB") + err = suite.manager.WipeItemFromAllTimelines(ctx, "01F8MH75CBF9JFX4ZAD54N0W0R") suite.NoError(err) // timeline should be shorter - indexedLen = suite.manager.GetIndexedLength(context.Background(), testAccount.ID) - suite.Equal(14, indexedLen) + indexedLen = suite.manager.GetIndexedLength(ctx, testAccount.ID) + suite.Equal(15, indexedLen) // oldest should now be different - oldestIndexed, err = suite.manager.GetOldestIndexedID(context.Background(), testAccount.ID) + oldestIndexed, err = suite.manager.GetOldestIndexedID(ctx, testAccount.ID) suite.NoError(err) - suite.Equal("01F8MHAAY43M6RJ473VQFCVH37", oldestIndexed) + suite.Equal("01F8MH82FYRXD2RC6108DAJ5HB", oldestIndexed) // delete the new oldest status specifically from this timeline, as though local_account_1 had muted or blocked it - removed, err := suite.manager.Remove(context.Background(), testAccount.ID, "01F8MHAAY43M6RJ473VQFCVH37") + removed, err := suite.manager.Remove(ctx, testAccount.ID, "01F8MH82FYRXD2RC6108DAJ5HB") suite.NoError(err) suite.Equal(2, removed) // 1 status should be removed, but from both indexed and prepared, so 2 removals total // timeline should be shorter - indexedLen = suite.manager.GetIndexedLength(context.Background(), testAccount.ID) - suite.Equal(13, indexedLen) + indexedLen = suite.manager.GetIndexedLength(ctx, testAccount.ID) + suite.Equal(14, indexedLen) // oldest should now be different - oldestIndexed, err = suite.manager.GetOldestIndexedID(context.Background(), testAccount.ID) + oldestIndexed, err = suite.manager.GetOldestIndexedID(ctx, testAccount.ID) suite.NoError(err) - suite.Equal("01F8MHAMCHF6Y650WCRSCP4WMY", oldestIndexed) + suite.Equal("01F8MHAAY43M6RJ473VQFCVH37", oldestIndexed) // now remove all entries by local_account_2 from the timeline - err = suite.manager.WipeItemsFromAccountID(context.Background(), testAccount.ID, suite.testAccounts["local_account_2"].ID) + err = suite.manager.WipeItemsFromAccountID(ctx, testAccount.ID, suite.testAccounts["local_account_2"].ID) suite.NoError(err) // timeline should be shorter - indexedLen = suite.manager.GetIndexedLength(context.Background(), testAccount.ID) - suite.Equal(6, indexedLen) + indexedLen = suite.manager.GetIndexedLength(ctx, testAccount.ID) + suite.Equal(7, indexedLen) // ingest 1 into the timeline status1 := suite.testStatuses["admin_account_status_1"] - ingested, err := suite.manager.Ingest(context.Background(), status1, testAccount.ID) + ingested, err := suite.manager.Ingest(ctx, status1, testAccount.ID) suite.NoError(err) suite.True(ingested) // ingest and prepare another one into the timeline status2 := suite.testStatuses["local_account_2_status_1"] - ingested, err = suite.manager.IngestAndPrepare(context.Background(), status2, testAccount.ID) + ingested, err = suite.manager.IngestAndPrepare(ctx, status2, testAccount.ID) suite.NoError(err) suite.True(ingested) // timeline should be longer now - indexedLen = suite.manager.GetIndexedLength(context.Background(), testAccount.ID) - suite.Equal(8, indexedLen) + indexedLen = suite.manager.GetIndexedLength(ctx, testAccount.ID) + suite.Equal(9, indexedLen) // try to ingest status 2 again - ingested, err = suite.manager.IngestAndPrepare(context.Background(), status2, testAccount.ID) + ingested, err = suite.manager.IngestAndPrepare(ctx, status2, testAccount.ID) suite.NoError(err) suite.False(ingested) // should be false since it's a duplicate } |