85 lines
1.9 KiB
Go
85 lines
1.9 KiB
Go
package db
|
|
|
|
import (
|
|
"context"
|
|
"database/sql"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/itsscb/df/bff/util"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
var timestamp = time.Now()
|
|
|
|
func createRandomAccount(t *testing.T) Account {
|
|
|
|
arg := CreateAccountParams{
|
|
Passwordhash: util.RandomString(30),
|
|
Email: util.RandomEmail(),
|
|
SecretKey: sql.NullString{
|
|
String: util.RandomString(100),
|
|
Valid: true,
|
|
},
|
|
}
|
|
|
|
account, err := testQueries.CreateAccount(context.Background(), arg)
|
|
require.NoError(t, err)
|
|
require.NotEmpty(t, account)
|
|
|
|
require.Equal(t, arg.Passwordhash, account.Passwordhash)
|
|
require.Equal(t, arg.Email, account.Email)
|
|
require.Equal(t, arg.SecretKey, account.SecretKey)
|
|
|
|
require.NotZero(t, account.ID)
|
|
|
|
return account
|
|
}
|
|
|
|
func TestCreateAccount(t *testing.T) {
|
|
createRandomAccount(t)
|
|
}
|
|
|
|
func TestGetAccount(t *testing.T) {
|
|
newAccount := createRandomAccount(t)
|
|
require.NotEmpty(t, newAccount)
|
|
|
|
account, err := testQueries.GetAccount(context.Background(), newAccount.ID)
|
|
require.NoError(t, err)
|
|
require.NotEmpty(t, account)
|
|
|
|
require.Equal(t, newAccount.Passwordhash, account.Passwordhash)
|
|
require.Equal(t, newAccount.Email, account.Email)
|
|
require.Equal(t, newAccount.SecretKey, account.SecretKey)
|
|
}
|
|
|
|
func TestDeleteAccount(t *testing.T) {
|
|
account1 := createRandomAccount(t)
|
|
err := testQueries.DeleteAccount(context.Background(), account1.ID)
|
|
require.NoError(t, err)
|
|
|
|
account2, err := testQueries.GetAccount(context.Background(), account1.ID)
|
|
require.Error(t, err)
|
|
require.EqualError(t, err, sql.ErrNoRows.Error())
|
|
require.Empty(t, account2)
|
|
}
|
|
|
|
func TestListAccounts(t *testing.T) {
|
|
for i := 0; i < 10; i++ {
|
|
createRandomAccount(t)
|
|
}
|
|
|
|
arg := ListAccountsParams{
|
|
Limit: 5,
|
|
Offset: 5,
|
|
}
|
|
|
|
accounts, err := testQueries.ListAccounts(context.Background(), arg)
|
|
require.NoError(t, err)
|
|
require.Len(t, accounts, 5)
|
|
|
|
for _, account := range accounts {
|
|
require.NotEmpty(t, account)
|
|
}
|
|
}
|