test/docs: harden Google read-only sync fixture coverage #450

Closed
opened 2026-05-13 18:43:23 +00:00 by barrettruth · 0 comments
Owner

Parent: #123
Depends on: #445, #448

Problem

The Google sync stack has many edge cases that should not be left as chat-only knowledge. Before the feature stack is considered complete, tests and operator docs should cover the important read-only and Calendar-specific behavior.

Required coverage

  • Google Tasks read-only enforcement and sync-engine update allowance.
  • Google Tasks source-state migration.
  • Google Calendar source selection defaults: visible selected, hidden unchecked, freeBusyReader excluded, read-only calendars included.
  • Google Calendar all-day one-day and multi-day exclusive-end behavior.
  • Google Calendar timed-event timezone preservation.
  • Google Calendar RRULE masters, exceptions, and cancelled instances via exdates.
  • Hidden-detail private event import as private event.
  • Transparent/free event import and metadata.
  • Duplicate iCalUID skip against existing .ics import.
  • Rich metadata preservation for attachments, attendees, reminders, conference data, organizer/creator, and raw provider fields.
  • Manual pull summaries and 410 Gone full-resync reporting.
  • Hard disconnect cleanup for imported Google Tasks and Calendar rows/links/source state.
  • Read-only mutation blocking through core paths, not only frontend controls.

Acceptance criteria

  • Focused tests or fixtures exist for the required coverage above, distributed across the implementation PRs or added in this hardening pass.
  • docs/operations/google-integration.md and self-hosting/operator docs reflect the final v1 read-only model.
  • Docs clearly state pull-only behavior, manual sync, destructive disconnect cleanup, selected-calendar behavior, hidden/private/free event semantics, and preserved metadata/non-goals.
  • The final stack has a clear manual smoke path for Settings, Calendar, dense task surfaces, and disconnect cleanup.

Non-goals

  • Do not add scheduled sync here.
  • Do not add future attachment, attendee, reminder, free/busy, raw JSON, or icon-polish feature work here.
Parent: #123 Depends on: #445, #448 ## Problem The Google sync stack has many edge cases that should not be left as chat-only knowledge. Before the feature stack is considered complete, tests and operator docs should cover the important read-only and Calendar-specific behavior. ## Required coverage - Google Tasks read-only enforcement and sync-engine update allowance. - Google Tasks source-state migration. - Google Calendar source selection defaults: visible selected, hidden unchecked, freeBusyReader excluded, read-only calendars included. - Google Calendar all-day one-day and multi-day exclusive-end behavior. - Google Calendar timed-event timezone preservation. - Google Calendar RRULE masters, exceptions, and cancelled instances via exdates. - Hidden-detail private event import as `private event`. - Transparent/free event import and metadata. - Duplicate `iCalUID` skip against existing `.ics` import. - Rich metadata preservation for attachments, attendees, reminders, conference data, organizer/creator, and raw provider fields. - Manual pull summaries and `410 Gone` full-resync reporting. - Hard disconnect cleanup for imported Google Tasks and Calendar rows/links/source state. - Read-only mutation blocking through core paths, not only frontend controls. ## Acceptance criteria - Focused tests or fixtures exist for the required coverage above, distributed across the implementation PRs or added in this hardening pass. - `docs/operations/google-integration.md` and self-hosting/operator docs reflect the final v1 read-only model. - Docs clearly state pull-only behavior, manual sync, destructive disconnect cleanup, selected-calendar behavior, hidden/private/free event semantics, and preserved metadata/non-goals. - The final stack has a clear manual smoke path for Settings, Calendar, dense task surfaces, and disconnect cleanup. ## Non-goals - Do not add scheduled sync here. - Do not add future attachment, attendee, reminder, free/busy, raw JSON, or icon-polish feature work here.
barrettruth added this to the v0.1.0 milestone 2026-05-13 18:43:23 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
barrettruth/delta#450
No description provided.