diff --git a/server/main_test.go b/server/main_test.go new file mode 100644 index 0000000..6d6d929 --- /dev/null +++ b/server/main_test.go @@ -0,0 +1,53 @@ +package server + +import ( + "fmt" + "io/fs" + "log" + "net/http" + + "git.javil.eu/jacob1123/budgeteer/bcrypt" + "git.javil.eu/jacob1123/budgeteer/config" + "git.javil.eu/jacob1123/budgeteer/jwt" + "git.javil.eu/jacob1123/budgeteer/postgres" + "git.javil.eu/jacob1123/budgeteer/web" +) + +func TestMain() { + cfg := config.Config{ + DatabaseConnection: "postgres://budgeteer:budgeteer@db:5432/budgeteer-testing", + SessionSecret: "random string for JWT authorization", + } + + queries, err := postgres.Connect("pgx", cfg.DatabaseConnection) + if err != nil { + log.Fatalf("Failed connecting to DB: %v", err) + } + + static, err := fs.Sub(web.Static, "dist") + if err != nil { + panic("couldn't open static files") + } + + tokenVerifier, err := jwt.NewTokenVerifier(cfg.SessionSecret) + if err != nil { + panic(fmt.Errorf("couldn't create token verifier: %w", err)) + } + + handler := &Handler{ + Service: queries, + TokenVerifier: tokenVerifier, + CredentialsVerifier: &bcrypt.Verifier{}, + StaticFS: http.FS(static), + } + + // create new budget + + // import from YNAB + + // check available balance + + // check categories + + // check accounts +}