mirror of
https://github.com/gabehf/Koito.git
synced 2026-03-18 03:36:35 -07:00
chore: initial public commit
This commit is contained in:
commit
fc9054b78c
250 changed files with 32809 additions and 0 deletions
106
internal/db/psql/images_test.go
Normal file
106
internal/db/psql/images_test.go
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
package psql_test
|
||||
|
||||
import (
|
||||
"context"
|
||||
"testing"
|
||||
|
||||
"github.com/gabehf/koito/internal/catalog"
|
||||
"github.com/google/uuid"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func setupTestDataForImages(t *testing.T) {
|
||||
truncateTestData(t)
|
||||
|
||||
// Insert artists
|
||||
err := store.Exec(context.Background(),
|
||||
`INSERT INTO artists (musicbrainz_id, image, image_source)
|
||||
VALUES ('00000000-0000-0000-0000-000000000001', '11111111-1111-1111-1111-111111111111', 'User Upload'),
|
||||
('00000000-0000-0000-0000-000000000002', NULL, NULL)`)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Insert artist aliases
|
||||
err = store.Exec(context.Background(),
|
||||
`INSERT INTO artist_aliases (artist_id, alias, source, is_primary)
|
||||
VALUES (1, 'Artist One', 'Testing', true),
|
||||
(2, 'Artist Two', 'Testing', true)`)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Insert albums
|
||||
err = store.Exec(context.Background(),
|
||||
`INSERT INTO releases (musicbrainz_id, image, image_source)
|
||||
VALUES ('22222222-2222-2222-2222-222222222222', '33333333-3333-3333-3333-333333333333', 'Automatic'),
|
||||
('44444444-4444-4444-4444-444444444444', NULL, NULL)`)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Insert release aliases
|
||||
err = store.Exec(context.Background(),
|
||||
`INSERT INTO release_aliases (release_id, alias, source, is_primary)
|
||||
VALUES (1, 'Album One', 'Testing', true),
|
||||
(2, 'Album Two', 'Testing', true)`)
|
||||
require.NoError(t, err)
|
||||
|
||||
// Associate albums with artists
|
||||
err = store.Exec(context.Background(),
|
||||
`INSERT INTO artist_releases (artist_id, release_id)
|
||||
VALUES (1, 1), (2, 2)`)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
func TestImageHasAssociation(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
setupTestDataForImages(t)
|
||||
|
||||
// Test image with association
|
||||
imageID := uuid.MustParse("11111111-1111-1111-1111-111111111111")
|
||||
hasAssociation, err := store.ImageHasAssociation(ctx, imageID)
|
||||
require.NoError(t, err)
|
||||
assert.True(t, hasAssociation, "expected image to have an association")
|
||||
|
||||
// Test image without association
|
||||
imageID = uuid.MustParse("55555555-5555-5555-5555-555555555555")
|
||||
hasAssociation, err = store.ImageHasAssociation(ctx, imageID)
|
||||
require.NoError(t, err)
|
||||
assert.False(t, hasAssociation, "expected image to have no association")
|
||||
|
||||
truncateTestData(t)
|
||||
}
|
||||
|
||||
func TestGetImageSource(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
setupTestDataForImages(t)
|
||||
|
||||
// Test image source for an album
|
||||
imageID := uuid.MustParse("33333333-3333-3333-3333-333333333333")
|
||||
source, err := store.GetImageSource(ctx, imageID)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "Automatic", source, "expected image source to match")
|
||||
|
||||
// Test image source for an artist
|
||||
imageID = uuid.MustParse("11111111-1111-1111-1111-111111111111")
|
||||
source, err = store.GetImageSource(ctx, imageID)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, catalog.ImageSourceUserUpload, source, "expected image source to match")
|
||||
|
||||
// Test image source for a non-existent image
|
||||
imageID = uuid.MustParse("55555555-5555-5555-5555-555555555555")
|
||||
source, err = store.GetImageSource(ctx, imageID)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, "", source, "expected no image source for non-existent image")
|
||||
|
||||
truncateTestData(t)
|
||||
}
|
||||
|
||||
func TestAlbumsWithoutImages(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
setupTestDataForImages(t)
|
||||
|
||||
// Test albums without images
|
||||
albums, err := store.AlbumsWithoutImages(ctx, 0)
|
||||
require.NoError(t, err)
|
||||
require.Len(t, albums, 1, "expected one album without an image")
|
||||
assert.Equal(t, "Album Two", albums[0].Title, "expected album title to match")
|
||||
|
||||
truncateTestData(t)
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue