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
|
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
|
func TestRegisterUser(t *testing.T) { //nolint:funlen
|
||||||
|
@ -1,10 +1,13 @@
|
|||||||
package server
|
package server
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io/fs"
|
"io/fs"
|
||||||
"log"
|
"log"
|
||||||
"net/http"
|
"net/http"
|
||||||
|
"os"
|
||||||
|
"testing"
|
||||||
|
|
||||||
"git.javil.eu/jacob1123/budgeteer/bcrypt"
|
"git.javil.eu/jacob1123/budgeteer/bcrypt"
|
||||||
"git.javil.eu/jacob1123/budgeteer/config"
|
"git.javil.eu/jacob1123/budgeteer/config"
|
||||||
@ -13,13 +16,14 @@ import (
|
|||||||
"git.javil.eu/jacob1123/budgeteer/web"
|
"git.javil.eu/jacob1123/budgeteer/web"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestMain() {
|
func TestMain(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
cfg := config.Config{
|
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",
|
SessionSecret: "random string for JWT authorization",
|
||||||
}
|
}
|
||||||
|
|
||||||
queries, err := postgres.Connect("pgx", cfg.DatabaseConnection)
|
queries, err := postgres.Connect("pgtx", cfg.DatabaseConnection)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("Failed connecting to DB: %v", err)
|
log.Fatalf("Failed connecting to DB: %v", err)
|
||||||
}
|
}
|
||||||
@ -41,7 +45,28 @@ func TestMain() {
|
|||||||
StaticFS: http.FS(static),
|
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
|
// import from YNAB
|
||||||
|
|
||||||
@ -51,3 +76,42 @@ func TestMain() {
|
|||||||
|
|
||||||
// check accounts
|
// 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