From a8e0524eb4e66d961ca2ff2e091c08e03916a77c Mon Sep 17 00:00:00 2001 From: chriszarate Date: Thu, 19 Feb 2026 13:26:37 -0500 Subject: [PATCH 1/2] Fix change-detection E2E tests after RTC enabled by default --- packages/sync/src/manager.ts | 5 ++++- .../e2e/specs/editor/various/change-detection.spec.js | 11 ++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/packages/sync/src/manager.ts b/packages/sync/src/manager.ts index df3af8a26fee90..cedf49bd79adf0 100644 --- a/packages/sync/src/manager.ts +++ b/packages/sync/src/manager.ts @@ -426,7 +426,10 @@ export function createSyncManager( debug = false ): SyncManager { // via its pre-persist hook.) targetDoc.transact( () => { applyChangesToCRDTDoc( targetDoc, record ); - handlers.saveRecord(); + + if ( 'auto-draft' !== record.status ) { + handlers.saveRecord(); + } }, LOCAL_SYNC_MANAGER_ORIGIN ); return; } diff --git a/test/e2e/specs/editor/various/change-detection.spec.js b/test/e2e/specs/editor/various/change-detection.spec.js index 5a3c241eba8ccd..63c81001fb9387 100644 --- a/test/e2e/specs/editor/various/change-detection.spec.js +++ b/test/e2e/specs/editor/various/change-detection.spec.js @@ -65,8 +65,8 @@ test.describe( 'Change detection', () => { ).toBeDisabled(), ] ); - // Autosave draft as same user should do full save, i.e. not dirty. - expect( await changeDetectionUtils.getIsDirty() ).toBe( false ); + // With RTC enabled, all autosaves target an autosave revision. + expect( await changeDetectionUtils.getIsDirty() ).toBe( true ); } ); test( 'Should prompt to confirm unsaved changes for autosaved draft for non-content fields', async ( { @@ -247,15 +247,16 @@ test.describe( 'Change detection', () => { 'Updating failed because you were offline. Please verify your connection and try again.' ) ).toBeVisible(); + + // Need to disable offline to allow reload and allow reconnect to sync provider. + await context.setOffline( false ); + await expect( page .getByRole( 'region', { name: 'Editor top bar' } ) .getByRole( 'button', { name: 'Save draft' } ) ).toBeEnabled(); - // Need to disable offline to allow reload. - await context.setOffline( false ); - expect( await changeDetectionUtils.getIsDirty() ).toBe( true ); } ); From e83c58259604fc943abf76966559636d882d23a1 Mon Sep 17 00:00:00 2001 From: chriszarate Date: Thu, 19 Feb 2026 22:43:29 -0500 Subject: [PATCH 2/2] Vary expectation based on RTC status --- test/e2e/specs/editor/various/change-detection.spec.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/test/e2e/specs/editor/various/change-detection.spec.js b/test/e2e/specs/editor/various/change-detection.spec.js index 63c81001fb9387..7db7c7e3fa47e4 100644 --- a/test/e2e/specs/editor/various/change-detection.spec.js +++ b/test/e2e/specs/editor/various/change-detection.spec.js @@ -65,8 +65,13 @@ test.describe( 'Change detection', () => { ).toBeDisabled(), ] ); - // With RTC enabled, all autosaves target an autosave revision. - expect( await changeDetectionUtils.getIsDirty() ).toBe( true ); + // With RTC enabled, all autosaves target an autosave revision. Vary our + // expectation accordingly. + const isRTCEnabled = Boolean( + await page.evaluate( () => window._wpCollaborationEnabled ) + ); + + expect( await changeDetectionUtils.getIsDirty() ).toBe( isRTCEnabled ); } ); test( 'Should prompt to confirm unsaved changes for autosaved draft for non-content fields', async ( {