From 2163f06de9178108328d35e3c26e2dc13f689d10 Mon Sep 17 00:00:00 2001 From: Aden Linday Date: Sat, 27 Jun 2026 14:24:08 +0930 Subject: [PATCH] tweak: update rolling perofrmance --- .../built-in/timetable/CalendarSyncControl.svelte | 6 +++--- src/seqta/utils/googleCalendar/syncEngine.test.ts | 13 +++++++++++++ src/seqta/utils/googleCalendar/syncEngine.ts | 4 +--- 3 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/plugins/built-in/timetable/CalendarSyncControl.svelte b/src/plugins/built-in/timetable/CalendarSyncControl.svelte index a79d99e4..7ea0b243 100644 --- a/src/plugins/built-in/timetable/CalendarSyncControl.svelte +++ b/src/plugins/built-in/timetable/CalendarSyncControl.svelte @@ -341,13 +341,13 @@ aria-haspopup="menu" aria-expanded={menuOpen} aria-busy={isBusy} - aria-label={status.connected ? "Google Calendar sync options" : "Connect Google Calendar"} + aria-label={status.connected ? "Google Calendar sync options" : "Sync with Calendar"} onclick={() => { if (!isBusy) toggleMenu(); }} > - Calendar + Sync with Calendar {#if status.connected} {/if} @@ -433,7 +433,7 @@ />

- Keeps a rolling {syncWeeksAhead}-week window. Each week adds the next week and removes the oldest. + Syncs {syncWeeksAhead} weeks ahead on connect and manual sync. Weekly auto-sync adds each new week forward.

{/if} diff --git a/src/seqta/utils/googleCalendar/syncEngine.test.ts b/src/seqta/utils/googleCalendar/syncEngine.test.ts index 40eb921b..300dbee8 100644 --- a/src/seqta/utils/googleCalendar/syncEngine.test.ts +++ b/src/seqta/utils/googleCalendar/syncEngine.test.ts @@ -97,6 +97,19 @@ describe("syncLessonsToGoogleCalendar", () => { }); }); + it("does not delete events during incremental sync", async () => { + const result = await syncLessonsToGoogleCalendar( + { origin: ORIGIN, lessons: [baseLesson], mode: "incremental" }, + getAccessToken, + ); + + expect(deleteGoogleCalendarEvent).not.toHaveBeenCalled(); + expect(result).toMatchObject({ + success: true, + deleted: 0, + }); + }); + it("reports progress while syncing", async () => { const progress: Array<{ phase: string; current: number; total: number }> = []; await syncLessonsToGoogleCalendar( diff --git a/src/seqta/utils/googleCalendar/syncEngine.ts b/src/seqta/utils/googleCalendar/syncEngine.ts index 503be74a..bd12e137 100644 --- a/src/seqta/utils/googleCalendar/syncEngine.ts +++ b/src/seqta/utils/googleCalendar/syncEngine.ts @@ -7,7 +7,6 @@ import { normalizeEventMapEntry, } from "@/seqta/utils/googleCalendar/eventMapEntry"; import { - droppedWeekRange, isDateInRange, syncWindowRange, } from "@/seqta/utils/googleCalendar/syncDateRange"; @@ -120,7 +119,6 @@ function entriesToPrune( currentMapKeys: Set, ): Array<[string, string]> { const window = syncWindowRange(weeksAhead); - const dropped = droppedWeekRange(weeksAhead); const prefix = `${origin}::`; const entries: Array<[string, string]> = []; @@ -131,7 +129,7 @@ function entriesToPrune( let shouldDelete = false; if (mode === "incremental") { - shouldDelete = !!entry.date && isDateInRange(entry.date, dropped); + shouldDelete = false; } else if (entry.date) { shouldDelete = !isDateInRange(entry.date, window); } else {