Read tests from file

This commit is contained in:
Jan Bader 2022-04-05 19:08:59 +00:00
parent 5f6bea4ee2
commit f0993fd9c3

View File

@ -87,18 +87,15 @@ type CategoryTestData struct {
func (h Handler) CheckAvailableBalance(ctx context.Context, t *testing.T, budget *postgres.Budget) { func (h Handler) CheckAvailableBalance(ctx context.Context, t *testing.T, budget *postgres.Budget) {
t.Helper() t.Helper()
loc := time.Now().Location() loc := time.Now().Location()
first := time.Date(2022, 1, 1, 0, 0, 0, 0, loc) first := time.Date(2021, 12, 1, 0, 0, 0, 0, loc)
firstOfNextMonth := time.Date(2022, 2, 1, 0, 0, 0, 0, loc) firstOfNextMonth := time.Date(2022, 1, 1, 0, 0, 0, 0, loc)
data, err := h.prepareBudgeting(ctx, *budget, firstOfNextMonth, first) data, err := h.prepareBudgeting(ctx, *budget, firstOfNextMonth, first)
if err != nil { if err != nil {
t.Errorf("prepare budgeting: %s", err) t.Errorf("prepare budgeting: %s", err)
return return
} }
if data.AvailableBalance.GetFloat64() != -115170.56 { assert_equal(t, -115170.56, data.AvailableBalance.GetFloat64(), "available balance")
t.Errorf("available balance is wrong")
return
}
categoryTestDataFile, err := os.Open("../testdata/production-export/results/categories-2021-12.json") categoryTestDataFile, err := os.Open("../testdata/production-export/results/categories-2021-12.json")
if err != nil { if err != nil {
@ -114,19 +111,28 @@ func (h Handler) CheckAvailableBalance(ctx context.Context, t *testing.T, budget
return return
} }
for _, category := range data.Categories { for categoryName, categoryTestData := range categoryTestData {
if category.Name == "Young & Home" { for _, category := range data.Categories {
if category.Available.GetFloat64() != 67.55 { name := category.Group + " : " + category.Name
t.Errorf("available for category Young & Home is wrong")
} if name == categoryName {
if category.Activity.GetFloat64() != -107.78 { assert_equal(t, categoryTestData.Available, category.Available.GetFloat64(), "available for "+categoryName)
t.Errorf("available for category Young & Home is wrong") assert_equal(t, categoryTestData.Activity, category.Activity.GetFloat64(), "activity for "+categoryName)
assert_equal(t, categoryTestData.Assigned, category.Assigned.GetFloat64(), "assigned for "+categoryName)
} }
fmt.Printf("%s: %f %f\n", category.Name, category.Activity.GetFloat64(), category.Available.GetFloat64())
} }
fmt.Printf("%s: %f %f\n", category.Name, category.Activity.GetFloat64(), category.Available.GetFloat64())
} }
} }
func assert_equal(t *testing.T, expected, actual float64, message string) {
if expected == actual {
return
}
t.Errorf("%s: expected %f, got %f", message, expected, actual)
}
func (h Handler) DoYNABImport(ctx context.Context, t *testing.T, budget *postgres.Budget) { func (h Handler) DoYNABImport(ctx context.Context, t *testing.T, budget *postgres.Budget) {
t.Helper() t.Helper()
budgetID := budget.ID budgetID := budget.ID