node build fixed
This commit is contained in:
79
seanime-2.9.10/internal/continuity/history_test.go
Normal file
79
seanime-2.9.10/internal/continuity/history_test.go
Normal file
@@ -0,0 +1,79 @@
|
||||
package continuity
|
||||
|
||||
import (
|
||||
"github.com/stretchr/testify/require"
|
||||
"path/filepath"
|
||||
"seanime/internal/database/db"
|
||||
"seanime/internal/test_utils"
|
||||
"seanime/internal/util"
|
||||
"seanime/internal/util/filecache"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestHistoryItems(t *testing.T) {
|
||||
test_utils.SetTwoLevelDeep()
|
||||
test_utils.InitTestProvider(t)
|
||||
|
||||
logger := util.NewLogger()
|
||||
|
||||
tempDir := t.TempDir()
|
||||
t.Log(tempDir)
|
||||
|
||||
database, err := db.NewDatabase(test_utils.ConfigData.Path.DataDir, test_utils.ConfigData.Database.Name, logger)
|
||||
require.NoError(t, err)
|
||||
|
||||
cacher, err := filecache.NewCacher(filepath.Join(tempDir, "cache"))
|
||||
require.NoError(t, err)
|
||||
|
||||
manager := NewManager(&NewManagerOptions{
|
||||
FileCacher: cacher,
|
||||
Logger: logger,
|
||||
Database: database,
|
||||
})
|
||||
require.NotNil(t, manager)
|
||||
|
||||
var mediaIds = make([]int, MaxWatchHistoryItems+1)
|
||||
for i := 0; i < MaxWatchHistoryItems+1; i++ {
|
||||
mediaIds[i] = i + 1
|
||||
}
|
||||
|
||||
// Add items to the history
|
||||
for _, mediaId := range mediaIds {
|
||||
err = manager.UpdateWatchHistoryItem(&UpdateWatchHistoryItemOptions{
|
||||
MediaId: mediaId,
|
||||
EpisodeNumber: 1,
|
||||
CurrentTime: 10,
|
||||
Duration: 100,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
// Check if the oldest item was removed
|
||||
items, err := filecache.GetAll[WatchHistoryItem](cacher, *manager.watchHistoryFileCacheBucket)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Len(t, items, MaxWatchHistoryItems)
|
||||
|
||||
// Update an item
|
||||
err = manager.UpdateWatchHistoryItem(&UpdateWatchHistoryItemOptions{
|
||||
MediaId: mediaIds[0], // 1
|
||||
EpisodeNumber: 2,
|
||||
CurrentTime: 30,
|
||||
Duration: 100,
|
||||
})
|
||||
require.NoError(t, err)
|
||||
|
||||
// Check if the item was updated
|
||||
items, err = filecache.GetAll[WatchHistoryItem](cacher, *manager.watchHistoryFileCacheBucket)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Len(t, items, MaxWatchHistoryItems)
|
||||
|
||||
item, found := items["1"]
|
||||
require.True(t, found)
|
||||
|
||||
require.Equal(t, 2, item.EpisodeNumber)
|
||||
require.Equal(t, 30., item.CurrentTime)
|
||||
require.Equal(t, 100., item.Duration)
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user