diff --git a/server/account_test.go b/server/account_test.go index 061b1bd..b9f6750 100644 --- a/server/account_test.go +++ b/server/account_test.go @@ -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 diff --git a/server/main_test.go b/server/main_test.go index 6d6d929..6c1eadd 100644 --- a/server/main_test.go +++ b/server/main_test.go @@ -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 + } +}