package calendartest import ( "context" "errors" "net/url" "testing" calendar "amadan.net/oficina/calendar/internal/calendar" ) func TestStrictRangeRejectsUnreadableBusySeries(t *testing.T) { for _, field := range []string{"tz", "start_local", "end_local"} { t.Run(field, func(t *testing.T) { app, session := signedIn(t, "someone@example.com") createEvent(t, app.Handler(), session, url.Values{"title": {"fixture"}, "start": {testAt(1, "09:00")}, "end": {testAt(1, "10:00")}, "kind": {"meeting"}, "status": {"confirmed"}, "repeat": {"daily"}}) if _, err := app.DBForTest().Exec("UPDATE events SET "+field+" = ? WHERE rrule <> ''", "invalid"); err != nil { t.Fatal(err) } person := app.PersonByAddressForTest(t, "someone@example.com") from, to := window(t, 1, 3) if _, err := app.StoreForTest().EventsInRange(context.Background(), person.ID, from, to); err != nil { t.Fatalf("tolerant view: %v", err) } if _, err := app.StoreForTest().EventsInRangeStrict(context.Background(), person.ID, from, to); !errors.Is(err, calendar.ErrIncompleteExpansion) { t.Fatalf("strict result=%v want incomplete expansion", err) } }) } }