diff --git a/database/dbtest/dbtest.go b/database/dbtest/dbtest.go
new file mode 100644
index 0000000..8b575cb
--- /dev/null
+++ b/database/dbtest/dbtest.go
@@ -0,0 +1,68 @@
+package dbtest
+
+import (
+	"testing"
+
+	"github.com/staticbackendhq/core/database"
+	"github.com/staticbackendhq/core/model"
+)
+
+const (
+	adminEmail    = "pg@test.com"
+	adminPassword = "test1234!"
+	confDBName    = "testdb"
+	colName       = "tasks"
+)
+
+func FindToken(t *testing.T, datastore database.Persister, adminToken model.User) {
+	tok, err := datastore.FindUser(confDBName, adminToken.ID, adminToken.Token)
+	if err != nil {
+		t.Fatal(err)
+	} else if tok.ID != adminToken.ID {
+		t.Errorf("expected tok.id to be %s got %s", adminToken.ID, tok.ID)
+	}
+}
+
+func FindRootToken(t *testing.T, datastore database.Persister, adminToken model.User) {
+	tok, err := datastore.FindRootUser(confDBName, adminToken.ID, adminToken.AccountID, adminToken.Token)
+	if err != nil {
+		t.Fatal(err)
+	} else if tok.ID != adminToken.ID {
+		t.Errorf("expected token id to be %s got %s", adminToken.ID, tok.ID)
+	}
+}
+
+func GetRootForBase(t *testing.T, datastore database.Persister, adminToken model.User) {
+	tok, err := datastore.GetRootForBase(confDBName)
+	if err != nil {
+		t.Fatal(err)
+	} else if tok.ID != adminToken.ID {
+		t.Errorf("expected tok id to be %s got %s", adminToken.ID, tok.ID)
+	}
+}
+
+func FindTokenByEmail(t *testing.T, datastore database.Persister, adminToken model.User) {
+	tok, err := datastore.FindUserByEmail(confDBName, adminEmail)
+	if err != nil {
+		t.Fatal(err)
+	} else if tok.ID != adminToken.ID {
+		t.Errorf("expected tok id to be %s got %s", adminToken.ID, tok.ID)
+	}
+}
+
+func UserEmailExists(t *testing.T, datastore database.Persister) {
+	if exists, err := datastore.UserEmailExists(confDBName, adminEmail); err != nil {
+		t.Fatal(err)
+	} else if !exists {
+		t.Errorf("email should exists")
+	}
+}
+
+func AccountList(t *testing.T, datastore database.Persister) {
+	accts, err := datastore.ListAccounts(confDBName)
+	if err != nil {
+		t.Fatal(err)
+	} else if len(accts) == 0 {
+		t.Errorf("expected at least 1 account, got %d", len(accts))
+	}
+}
diff --git a/database/memory/account_test.go b/database/memory/account_test.go
index a63f762..bda8496 100644
--- a/database/memory/account_test.go
+++ b/database/memory/account_test.go
@@ -1,56 +1,31 @@
 package memory
 
-import "testing"
+import (
+	"testing"
+
+	"github.com/staticbackendhq/core/database/dbtest"
+)
 
 func TestFindToken(t *testing.T) {
-	tok, err := datastore.FindUser(confDBName, adminToken.ID, adminToken.Token)
-	if err != nil {
-		t.Fatal(err)
-	} else if tok.ID != adminToken.ID {
-		t.Errorf("expected tok.id to be %s got %s", adminToken.ID, tok.ID)
-	}
+	dbtest.FindToken(t, datastore, adminToken)
 }
 
 func TestFindRootToken(t *testing.T) {
-	tok, err := datastore.FindRootUser(confDBName, adminToken.ID, adminToken.AccountID, adminToken.Token)
-	if err != nil {
-		t.Fatal(err)
-	} else if tok.ID != adminToken.ID {
-		t.Errorf("expected token id to be %s got %s", adminToken.ID, tok.ID)
-	}
+	dbtest.FindRootToken(t, datastore, adminToken)
 }
 
 func TestGetRootForBase(t *testing.T) {
-	tok, err := datastore.GetRootForBase(confDBName)
-	if err != nil {
-		t.Fatal(err)
-	} else if tok.ID != adminToken.ID {
-		t.Errorf("expected tok id to be %s got %s", adminToken.ID, tok.ID)
-	}
+	dbtest.GetRootForBase(t, datastore, adminToken)
 }
 
 func TestFindTokenByEmail(t *testing.T) {
-	tok, err := datastore.FindUserByEmail(confDBName, adminEmail)
-	if err != nil {
-		t.Fatal(err)
-	} else if tok.ID != adminToken.ID {
-		t.Errorf("expected tok id to be %s got %s", adminToken.ID, tok.ID)
-	}
+	dbtest.FindTokenByEmail(t, datastore, adminToken)
 }
 
 func TestUserEmailExists(t *testing.T) {
-	if exists, err := datastore.UserEmailExists(confDBName, adminEmail); err != nil {
-		t.Fatal(err)
-	} else if !exists {
-		t.Errorf("email should exists")
-	}
+	dbtest.UserEmailExists(t, datastore)
 }
 
 func TestAccountList(t *testing.T) {
-	accts, err := datastore.ListAccounts(confDBName)
-	if err != nil {
-		t.Fatal(err)
-	} else if len(accts) == 0 {
-		t.Errorf("expected at least 1 account, got %d", len(accts))
-	}
+	dbtest.AccountList(t, datastore)
 }
diff --git a/database/mongo/account_test.go b/database/mongo/account_test.go
index af012d2..308ad3e 100644
--- a/database/mongo/account_test.go
+++ b/database/mongo/account_test.go
@@ -1,56 +1,31 @@
 package mongo
 
-import "testing"
+import (
+	"testing"
+
+	"github.com/staticbackendhq/core/database/dbtest"
+)
 
 func TestFindToken(t *testing.T) {
-	tok, err := datastore.FindUser(confDBName, adminToken.ID, adminToken.Token)
-	if err != nil {
-		t.Fatal(err)
-	} else if tok.ID != adminToken.ID {
-		t.Errorf("expected tok.id to be %s got %s", adminToken.ID, tok.ID)
-	}
+	dbtest.FindToken(t, datastore, adminToken)
 }
 
 func TestFindRootToken(t *testing.T) {
-	tok, err := datastore.FindRootUser(confDBName, adminToken.ID, adminToken.AccountID, adminToken.Token)
-	if err != nil {
-		t.Fatal(err)
-	} else if tok.ID != adminToken.ID {
-		t.Errorf("expected token id to be %s got %s", adminToken.ID, tok.ID)
-	}
+	dbtest.FindRootToken(t, datastore, adminToken)
 }
 
 func TestGetRootForBase(t *testing.T) {
-	tok, err := datastore.GetRootForBase(confDBName)
-	if err != nil {
-		t.Fatal(err)
-	} else if tok.ID != adminToken.ID {
-		t.Errorf("expected tok id to be %s got %s", adminToken.ID, tok.ID)
-	}
+	dbtest.GetRootForBase(t, datastore, adminToken)
 }
 
 func TestFindTokenByEmail(t *testing.T) {
-	tok, err := datastore.FindUserByEmail(confDBName, adminEmail)
-	if err != nil {
-		t.Fatal(err)
-	} else if tok.ID != adminToken.ID {
-		t.Errorf("expected tok id to be %s got %s", adminToken.ID, tok.ID)
-	}
+	dbtest.FindTokenByEmail(t, datastore, adminToken)
 }
 
 func TestUserEmailExists(t *testing.T) {
-	if exists, err := datastore.UserEmailExists(confDBName, adminEmail); err != nil {
-		t.Fatal(err)
-	} else if !exists {
-		t.Errorf("email should exists")
-	}
+	dbtest.UserEmailExists(t, datastore)
 }
 
 func TestAccountList(t *testing.T) {
-	accts, err := datastore.ListAccounts(confDBName)
-	if err != nil {
-		t.Fatal(err)
-	} else if len(accts) == 0 {
-		t.Errorf("expected at least 1 account, got %d", len(accts))
-	}
+	dbtest.AccountList(t, datastore)
 }
diff --git a/database/postgresql/account_test.go b/database/postgresql/account_test.go
index bfe5a9b..463c947 100644
--- a/database/postgresql/account_test.go
+++ b/database/postgresql/account_test.go
@@ -1,56 +1,31 @@
 package postgresql
 
-import "testing"
+import (
+	"testing"
+
+	"github.com/staticbackendhq/core/database/dbtest"
+)
 
 func TestFindToken(t *testing.T) {
-	tok, err := datastore.FindUser(confDBName, adminToken.ID, adminToken.Token)
-	if err != nil {
-		t.Fatal(err)
-	} else if tok.ID != adminToken.ID {
-		t.Errorf("expected tok.id to be %s got %s", adminToken.ID, tok.ID)
-	}
+	dbtest.FindToken(t, datastore, adminToken)
 }
 
 func TestFindRootToken(t *testing.T) {
-	tok, err := datastore.FindRootUser(confDBName, adminToken.ID, adminToken.AccountID, adminToken.Token)
-	if err != nil {
-		t.Fatal(err)
-	} else if tok.ID != adminToken.ID {
-		t.Errorf("expected token id to be %s got %s", adminToken.ID, tok.ID)
-	}
+	dbtest.FindRootToken(t, datastore, adminToken)
 }
 
 func TestGetRootForBase(t *testing.T) {
-	tok, err := datastore.GetRootForBase(confDBName)
-	if err != nil {
-		t.Fatal(err)
-	} else if tok.ID != adminToken.ID {
-		t.Errorf("expected tok id to be %s got %s", adminToken.ID, tok.ID)
-	}
+	dbtest.GetRootForBase(t, datastore, adminToken)
 }
 
 func TestFindTokenByEmail(t *testing.T) {
-	tok, err := datastore.FindUserByEmail(confDBName, adminEmail)
-	if err != nil {
-		t.Fatal(err)
-	} else if tok.ID != adminToken.ID {
-		t.Errorf("expected tok id to be %s got %s", adminToken.ID, tok.ID)
-	}
+	dbtest.FindTokenByEmail(t, datastore, adminToken)
 }
 
 func TestUserEmailExists(t *testing.T) {
-	if exists, err := datastore.UserEmailExists(confDBName, adminEmail); err != nil {
-		t.Fatal(err)
-	} else if !exists {
-		t.Errorf("email should exists")
-	}
+	dbtest.UserEmailExists(t, datastore)
 }
 
 func TestAccountList(t *testing.T) {
-	accts, err := datastore.ListAccounts(confDBName)
-	if err != nil {
-		t.Fatal(err)
-	} else if len(accts) == 0 {
-		t.Errorf("expected at least 1 account, got %d", len(accts))
-	}
+	dbtest.AccountList(t, datastore)
 }
diff --git a/database/sqlite/account_test.go b/database/sqlite/account_test.go
index 4d9fef6..1ee8e1d 100644
--- a/database/sqlite/account_test.go
+++ b/database/sqlite/account_test.go
@@ -2,57 +2,30 @@ package sqlite
 
 import (
 	"testing"
+
+	"github.com/staticbackendhq/core/database/dbtest"
 )
 
 func TestFindToken(t *testing.T) {
-	tok, err := datastore.FindUser(confDBName, adminToken.ID, adminToken.Token)
-	if err != nil {
-		t.Fatal(err)
-	} else if tok.ID != adminToken.ID {
-		t.Errorf("expected tok.id to be %s got %s", adminToken.ID, tok.ID)
-	}
+	dbtest.FindToken(t, datastore, adminToken)
 }
 
 func TestFindRootToken(t *testing.T) {
-	tok, err := datastore.FindRootUser(confDBName, adminToken.ID, adminToken.AccountID, adminToken.Token)
-	if err != nil {
-		t.Fatal(err)
-	} else if tok.ID != adminToken.ID {
-		t.Errorf("expected token id to be %s got %s", adminToken.ID, tok.ID)
-	}
+	dbtest.FindRootToken(t, datastore, adminToken)
 }
 
 func TestGetRootForBase(t *testing.T) {
-	tok, err := datastore.GetRootForBase(confDBName)
-	if err != nil {
-		t.Fatal(err)
-	} else if tok.ID != adminToken.ID {
-		t.Errorf("expected tok id to be %s got %s", adminToken.ID, tok.ID)
-	}
+	dbtest.GetRootForBase(t, datastore, adminToken)
 }
 
 func TestFindTokenByEmail(t *testing.T) {
-	tok, err := datastore.FindUserByEmail(confDBName, adminEmail)
-	if err != nil {
-		t.Fatal(err)
-	} else if tok.ID != adminToken.ID {
-		t.Errorf("expected tok id to be %s got %s", adminToken.ID, tok.ID)
-	}
+	dbtest.FindTokenByEmail(t, datastore, adminToken)
 }
 
 func TestUserEmailExists(t *testing.T) {
-	if exists, err := datastore.UserEmailExists(confDBName, adminEmail); err != nil {
-		t.Fatal(err)
-	} else if !exists {
-		t.Errorf("email should exists")
-	}
+	dbtest.UserEmailExists(t, datastore)
 }
 
 func TestAccountList(t *testing.T) {
-	accts, err := datastore.ListAccounts(confDBName)
-	if err != nil {
-		t.Fatal(err)
-	} else if len(accts) == 0 {
-		t.Errorf("expected at least 1 account, got %d", len(accts))
-	}
+	dbtest.AccountList(t, datastore)
 }