Fix create first login

This commit is contained in:
Deluan
2021-05-02 14:13:17 -04:00
parent e3fe8399c8
commit b8138ebad6
5 changed files with 132 additions and 33 deletions
+5 -32
View File
@@ -2,8 +2,6 @@ package tests
import (
"context"
"encoding/base64"
"strings"
"github.com/navidrome/navidrome/model"
)
@@ -14,6 +12,7 @@ type MockDataStore struct {
MockedArtist model.ArtistRepository
MockedMediaFile model.MediaFileRepository
MockedUser model.UserRepository
MockedProperty model.PropertyRepository
MockedPlayer model.PlayerRepository
MockedTranscoding model.TranscodingRepository
}
@@ -59,7 +58,10 @@ func (db *MockDataStore) PlayQueue(context.Context) model.PlayQueueRepository {
}
func (db *MockDataStore) Property(context.Context) model.PropertyRepository {
return struct{ model.PropertyRepository }{}
if db.MockedProperty == nil {
db.MockedProperty = &mockedPropertyRepo{}
}
return db.MockedProperty
}
func (db *MockDataStore) User(context.Context) model.UserRepository {
@@ -94,32 +96,3 @@ func (db *MockDataStore) Resource(ctx context.Context, m interface{}) model.Reso
func (db *MockDataStore) GC(ctx context.Context, rootFolder string) error {
return nil
}
type mockedUserRepo struct {
model.UserRepository
data map[string]*model.User
}
func (u *mockedUserRepo) CountAll(qo ...model.QueryOptions) (int64, error) {
return int64(len(u.data)), nil
}
func (u *mockedUserRepo) Put(usr *model.User) error {
if u.data == nil {
u.data = make(map[string]*model.User)
}
if usr.ID == "" {
usr.ID = base64.StdEncoding.EncodeToString([]byte(usr.UserName))
}
usr.Password = usr.NewPassword
u.data[strings.ToLower(usr.UserName)] = usr
return nil
}
func (u *mockedUserRepo) FindByUsername(username string) (*model.User, error) {
usr, ok := u.data[strings.ToLower(username)]
if !ok {
return nil, model.ErrNotFound
}
return usr, nil
}