diff --git a/apps/extension/src/lib/__tests__/recording-runtime.test.ts b/apps/extension/src/lib/__tests__/recording-runtime.test.ts index 34af517..c541f3a 100644 --- a/apps/extension/src/lib/__tests__/recording-runtime.test.ts +++ b/apps/extension/src/lib/__tests__/recording-runtime.test.ts @@ -139,8 +139,10 @@ describe("RecordingObservationRuntime", () => { await recording.captureInitial(4); const transition = await recording.captureTabTransition(4, 5); + await recording.captureInitial(4); + await recording.captureInitial(5); - expect(transition).toMatchObject({ + expect(transition).toEqual({ preStateId: "s1", postStateId: "s2", targetUrl: "https://example.com/second", diff --git a/apps/extension/src/lib/__tests__/tab-coordinator.test.ts b/apps/extension/src/lib/__tests__/tab-coordinator.test.ts index 42499d3..06697e0 100644 --- a/apps/extension/src/lib/__tests__/tab-coordinator.test.ts +++ b/apps/extension/src/lib/__tests__/tab-coordinator.test.ts @@ -26,4 +26,14 @@ describe("RecordingTabCoordinator", () => { tabs.commit(6); expect(tabs.currentTabId).toBe(6); }); + + it("commits the freshly observed URL when returning to an existing tab", () => { + const tabs = new RecordingTabCoordinator(4); + tabs.navigation(5, "https://example.com/old"); + + tabs.commit(5, "https://example.com/new"); + + expect(tabs.currentTabId).toBe(5); + expect(tabs.navigation(5).currentUrl).toBe("https://example.com/new"); + }); }); diff --git a/apps/extension/src/lib/recording/tab-coordinator.ts b/apps/extension/src/lib/recording/tab-coordinator.ts index 2782b6f..ab207f0 100644 --- a/apps/extension/src/lib/recording/tab-coordinator.ts +++ b/apps/extension/src/lib/recording/tab-coordinator.ts @@ -40,7 +40,8 @@ export class RecordingTabCoordinator { ); } - commit(tabId: number): void { + commit(tabId: number, currentUrl?: string): void { + if (currentUrl !== undefined) this.navigation(tabId).currentUrl = currentUrl; this.#currentTabId = tabId; } diff --git a/apps/extension/src/tools/record.ts b/apps/extension/src/tools/record.ts index 80dde14..46f984b 100644 --- a/apps/extension/src/tools/record.ts +++ b/apps/extension/src/tools/record.ts @@ -255,8 +255,7 @@ async function activateRecordingTab( }; recording.steps.push(draft); recording.observation?.bindTabTransition(draft, recording.steps.length); - recording.tabs.navigation(targetTabId, targetUrl); - recording.tabs.commit(targetTabId); + recording.tabs.commit(targetTabId, targetUrl); } async function processRecordedStep(