initial v0.8 pre-release

This commit is contained in:
Gani Georgiev
2022-10-30 10:28:14 +02:00
parent 9cbb2e750e
commit 90dba45d7c
388 changed files with 21580 additions and 13603 deletions

View File

@@ -4,7 +4,6 @@ import (
"testing"
"github.com/pocketbase/pocketbase/models"
"github.com/pocketbase/pocketbase/tools/types"
)
func TestBaseModelHasId(t *testing.T) {
@@ -65,6 +64,9 @@ func TestBaseModelIsNew(t *testing.T) {
m5 := models.BaseModel{Id: "test"}
m5.MarkAsNew()
m5.UnmarkAsNew()
// check if MarkAsNew will be called on initial RefreshId()
m6 := models.BaseModel{}
m6.RefreshId()
scenarios := []struct {
model models.BaseModel
@@ -76,6 +78,7 @@ func TestBaseModelIsNew(t *testing.T) {
{m3, true},
{m4, true},
{m5, false},
{m6, true},
}
for i, s := range scenarios {
@@ -113,96 +116,3 @@ func TestBaseModelUpdated(t *testing.T) {
t.Fatalf("Expected non-zero datetime, got %v", m.GetUpdated())
}
}
// -------------------------------------------------------------------
// BaseAccount tests
// -------------------------------------------------------------------
func TestBaseAccountValidatePassword(t *testing.T) {
scenarios := []struct {
account models.BaseAccount
password string
expected bool
}{
{
// empty passwordHash + empty pass
models.BaseAccount{},
"",
false,
},
{
// empty passwordHash + nonempty pass
models.BaseAccount{},
"123456",
false,
},
{
// nonempty passwordHash + empty pass
models.BaseAccount{PasswordHash: "$2a$10$SKk/Y/Yc925PBtsSYBvq3Ous9Jy18m4KTn6b/PQQ.Y9QVjy3o/Fv."},
"",
false,
},
{
// nonempty passwordHash + wrong pass
models.BaseAccount{PasswordHash: "$2a$10$SKk/Y/Yc925PBtsSYBvq3Ous9Jy18m4KTn6b/PQQ.Y9QVjy3o/Fv."},
"654321",
false,
},
{
// nonempty passwordHash + correct pass
models.BaseAccount{PasswordHash: "$2a$10$SKk/Y/Yc925PBtsSYBvq3Ous9Jy18m4KTn6b/PQQ.Y9QVjy3o/Fv."},
"123456",
true,
},
}
for i, s := range scenarios {
result := s.account.ValidatePassword(s.password)
if result != s.expected {
t.Errorf("(%d) Expected %v, got %v", i, s.expected, result)
}
}
}
func TestBaseAccountSetPassword(t *testing.T) {
m := models.BaseAccount{
// 123456
PasswordHash: "$2a$10$SKk/Y/Yc925PBtsSYBvq3Ous9Jy18m4KTn6b/PQQ.Y9QVjy3o/Fv.",
LastResetSentAt: types.NowDateTime(),
TokenKey: "test",
}
// empty pass
err1 := m.SetPassword("")
if err1 == nil {
t.Fatal("Expected empty password error")
}
err2 := m.SetPassword("654321")
if err2 != nil {
t.Fatalf("Expected nil, got error %v", err2)
}
if !m.ValidatePassword("654321") {
t.Fatalf("Password is invalid")
}
if m.TokenKey == "test" {
t.Fatalf("Expected TokenKey to change, got %v", m.TokenKey)
}
if !m.LastResetSentAt.IsZero() {
t.Fatalf("Expected LastResetSentAt to be zero datetime, got %v", m.LastResetSentAt)
}
}
func TestBaseAccountRefreshTokenKey(t *testing.T) {
m := models.BaseAccount{TokenKey: "test"}
m.RefreshTokenKey()
// empty pass
if m.TokenKey == "" || m.TokenKey == "test" {
t.Fatalf("Expected TokenKey to change, got %q", m.TokenKey)
}
}