Add scanner_album tests

This commit is contained in:
viktorstrate
2021-04-26 15:07:06 +02:00
parent 8184c7d8c5
commit 253f126aaf
3 changed files with 51 additions and 2 deletions

View File

@@ -107,8 +107,6 @@ func (fd *FaceDetector) DetectFaces(db *gorm.DB, media *models.Media) error {
return err
}
log.Printf("Face thumb path: %v %v\n", thumbnailPath, fd)
fd.mutex.Lock()
faces, err := fd.rec.RecognizeFile(thumbnailPath)
fd.mutex.Unlock()

View File

@@ -30,6 +30,15 @@ func NewRootAlbum(db *gorm.DB, rootPath string, owner *models.User) (*models.Alb
if len(matchedAlbums) > 0 {
album := matchedAlbums[0]
var matchedUserAlbumCount int64
if err := db.Table("user_albums").Where("user_id = ?", owner.ID).Where("album_id = ?", album.ID).Count(&matchedUserAlbumCount).Error; err != nil {
return nil, err
}
if matchedUserAlbumCount > 0 {
return nil, errors.New(fmt.Sprintf("user already owns path (%s)", rootPath))
}
if err := db.Model(&owner).Association("Albums").Append(&album); err != nil {
return nil, errors.Wrap(err, "failed to add owner to already existing album")
}

View File

@@ -0,0 +1,42 @@
package scanner_test
import (
"testing"
"github.com/photoview/photoview/api/graphql/models"
"github.com/photoview/photoview/api/scanner"
"github.com/photoview/photoview/api/test_utils"
"github.com/stretchr/testify/assert"
)
func TestNewRootPath(t *testing.T) {
db := test_utils.DatabaseTest(t)
user := models.User{
Username: "user1",
}
if !assert.NoError(t, db.Save(&user).Error) {
return
}
t.Run("Insert valid root album", func(t *testing.T) {
album, err := scanner.NewRootAlbum(db, "./test_data", &user)
if !assert.NoError(t, err) {
return
}
assert.NotNil(t, album)
assert.Equal(t, "./test_data", album.Path)
assert.NotEmpty(t, album.Owners)
})
t.Run("Insert duplicate root album", func(t *testing.T) {
_, err := scanner.NewRootAlbum(db, "./test_data", &user)
assert.Error(t, err)
assert.Equal(t, err.Error(), "user already owns path (./test_data)")
})
}