mirror of
https://github.com/gabehf/Koito.git
synced 2026-03-18 03:36:35 -07:00
transition time ranged queries to timeframe (#117)
This commit is contained in:
parent
ad3c51a70e
commit
d327729bff
26 changed files with 2032 additions and 335 deletions
|
|
@ -14,7 +14,7 @@ func TestGetTopArtistsPaginated(t *testing.T) {
|
|||
ctx := context.Background()
|
||||
|
||||
// Test valid
|
||||
resp, err := store.GetTopArtistsPaginated(ctx, db.GetItemsOpts{Period: db.PeriodAllTime})
|
||||
resp, err := store.GetTopArtistsPaginated(ctx, db.GetItemsOpts{Timeframe: db.Timeframe{Period: db.PeriodAllTime}})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, resp.Items, 4)
|
||||
assert.Equal(t, int64(4), resp.TotalCount)
|
||||
|
|
@ -24,13 +24,13 @@ func TestGetTopArtistsPaginated(t *testing.T) {
|
|||
assert.Equal(t, "Artist Four", resp.Items[3].Name)
|
||||
|
||||
// Test pagination
|
||||
resp, err = store.GetTopArtistsPaginated(ctx, db.GetItemsOpts{Limit: 1, Page: 2, Period: db.PeriodAllTime})
|
||||
resp, err = store.GetTopArtistsPaginated(ctx, db.GetItemsOpts{Limit: 1, Page: 2, Timeframe: db.Timeframe{Period: db.PeriodAllTime}})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, resp.Items, 1)
|
||||
assert.Equal(t, "Artist Two", resp.Items[0].Name)
|
||||
|
||||
// Test page out of range
|
||||
resp, err = store.GetTopArtistsPaginated(ctx, db.GetItemsOpts{Limit: 1, Page: 10, Period: db.PeriodAllTime})
|
||||
resp, err = store.GetTopArtistsPaginated(ctx, db.GetItemsOpts{Limit: 1, Page: 10, Timeframe: db.Timeframe{Period: db.PeriodAllTime}})
|
||||
require.NoError(t, err)
|
||||
assert.Empty(t, resp.Items)
|
||||
assert.False(t, resp.HasNextPage)
|
||||
|
|
@ -43,7 +43,7 @@ func TestGetTopArtistsPaginated(t *testing.T) {
|
|||
assert.Error(t, err)
|
||||
|
||||
// Test specify period
|
||||
resp, err = store.GetTopArtistsPaginated(ctx, db.GetItemsOpts{Period: db.PeriodDay})
|
||||
resp, err = store.GetTopArtistsPaginated(ctx, db.GetItemsOpts{Timeframe: db.Timeframe{Period: db.PeriodDay}})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, resp.Items, 0) // empty
|
||||
assert.Equal(t, int64(0), resp.TotalCount)
|
||||
|
|
@ -53,20 +53,20 @@ func TestGetTopArtistsPaginated(t *testing.T) {
|
|||
require.Len(t, resp.Items, 0) // empty
|
||||
assert.Equal(t, int64(0), resp.TotalCount)
|
||||
|
||||
resp, err = store.GetTopArtistsPaginated(ctx, db.GetItemsOpts{Period: db.PeriodWeek})
|
||||
resp, err = store.GetTopArtistsPaginated(ctx, db.GetItemsOpts{Timeframe: db.Timeframe{Period: db.PeriodWeek}})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, resp.Items, 1)
|
||||
assert.Equal(t, int64(1), resp.TotalCount)
|
||||
assert.Equal(t, "Artist Four", resp.Items[0].Name)
|
||||
|
||||
resp, err = store.GetTopArtistsPaginated(ctx, db.GetItemsOpts{Period: db.PeriodMonth})
|
||||
resp, err = store.GetTopArtistsPaginated(ctx, db.GetItemsOpts{Timeframe: db.Timeframe{Period: db.PeriodMonth}})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, resp.Items, 2)
|
||||
assert.Equal(t, int64(2), resp.TotalCount)
|
||||
assert.Equal(t, "Artist Three", resp.Items[0].Name)
|
||||
assert.Equal(t, "Artist Four", resp.Items[1].Name)
|
||||
|
||||
resp, err = store.GetTopArtistsPaginated(ctx, db.GetItemsOpts{Period: db.PeriodYear})
|
||||
resp, err = store.GetTopArtistsPaginated(ctx, db.GetItemsOpts{Timeframe: db.Timeframe{Period: db.PeriodYear}})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, resp.Items, 3)
|
||||
assert.Equal(t, int64(3), resp.TotalCount)
|
||||
|
|
@ -78,19 +78,15 @@ func TestGetTopArtistsPaginated(t *testing.T) {
|
|||
|
||||
testDataAbsoluteListenTimes(t)
|
||||
|
||||
resp, err = store.GetTopArtistsPaginated(ctx, db.GetItemsOpts{Year: 2023})
|
||||
resp, err = store.GetTopArtistsPaginated(ctx, db.GetItemsOpts{Timeframe: db.Timeframe{Year: 2023}})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, resp.Items, 1)
|
||||
assert.Equal(t, int64(1), resp.TotalCount)
|
||||
assert.Equal(t, "Artist One", resp.Items[0].Name)
|
||||
|
||||
resp, err = store.GetTopArtistsPaginated(ctx, db.GetItemsOpts{Month: 6, Year: 2024})
|
||||
resp, err = store.GetTopArtistsPaginated(ctx, db.GetItemsOpts{Timeframe: db.Timeframe{Month: 6, Year: 2024}})
|
||||
require.NoError(t, err)
|
||||
require.Len(t, resp.Items, 1)
|
||||
assert.Equal(t, int64(1), resp.TotalCount)
|
||||
assert.Equal(t, "Artist Two", resp.Items[0].Name)
|
||||
|
||||
// invalid, year required with month
|
||||
_, err = store.GetTopArtistsPaginated(ctx, db.GetItemsOpts{Month: 10})
|
||||
require.Error(t, err)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue