Implement ynab import in test and use pgtx
This commit is contained in:
parent
4a66d9fdfc
commit
2d9c380cf4
@ -16,7 +16,7 @@ import (
|
||||
)
|
||||
|
||||
func init() { //nolint:gochecknoinits
|
||||
txdb.Register("pgtx", "pgx", "postgres://budgeteer_test:budgeteer_test@localhost:5432/budgeteer_test")
|
||||
txdb.Register("pgtx", "pgx", "postgres://budgeteer:budgeteer@db:5432/budgeteer_test")
|
||||
}
|
||||
|
||||
func TestRegisterUser(t *testing.T) { //nolint:funlen
|
||||
|
@ -1,10 +1,13 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io/fs"
|
||||
"log"
|
||||
"net/http"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"git.javil.eu/jacob1123/budgeteer/bcrypt"
|
||||
"git.javil.eu/jacob1123/budgeteer/config"
|
||||
@ -13,13 +16,14 @@ import (
|
||||
"git.javil.eu/jacob1123/budgeteer/web"
|
||||
)
|
||||
|
||||
func TestMain() {
|
||||
func TestMain(t *testing.T) {
|
||||
t.Parallel()
|
||||
cfg := config.Config{
|
||||
DatabaseConnection: "postgres://budgeteer:budgeteer@db:5432/budgeteer-testing",
|
||||
DatabaseConnection: "postgres://budgeteer:budgeteer@db:5432/budgeteer_test",
|
||||
SessionSecret: "random string for JWT authorization",
|
||||
}
|
||||
|
||||
queries, err := postgres.Connect("pgx", cfg.DatabaseConnection)
|
||||
queries, err := postgres.Connect("pgtx", cfg.DatabaseConnection)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed connecting to DB: %v", err)
|
||||
}
|
||||
@ -41,7 +45,28 @@ func TestMain() {
|
||||
StaticFS: http.FS(static),
|
||||
}
|
||||
|
||||
// create new budget
|
||||
ctx := context.Background()
|
||||
|
||||
createUserParams := postgres.CreateUserParams{
|
||||
Email: "test@example.com",
|
||||
Name: "test@example.com",
|
||||
Password: "this is my dumb password",
|
||||
}
|
||||
user, err := handler.Service.CreateUser(ctx, createUserParams)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
|
||||
budget, err := handler.Service.NewBudget(ctx, "My nice Budget", user.ID)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
|
||||
handler.DoYNABImport(ctx, t, budget)
|
||||
|
||||
// import from YNAB
|
||||
|
||||
@ -51,3 +76,42 @@ func TestMain() {
|
||||
|
||||
// check accounts
|
||||
}
|
||||
|
||||
func (h Handler) DoYNABImport(ctx context.Context, t *testing.T, budget *postgres.Budget) {
|
||||
t.Helper()
|
||||
budgetID := budget.ID
|
||||
ynab, err := postgres.NewYNABImport(ctx, h.Service.Queries, budgetID)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
|
||||
transactions, err := os.Open("../.vscode/Register.tsv")
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
|
||||
assignments, err := os.Open("../.vscode/Budget.tsv")
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
|
||||
err = ynab.ImportTransactions(ctx, transactions)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
|
||||
err = ynab.ImportAssignments(ctx, assignments)
|
||||
if err != nil {
|
||||
fmt.Println(err)
|
||||
t.Fail()
|
||||
return
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user