import { Client, syncClients, expectClients, clearBuffer } from './utils.js'; describe( 'transform', () => { let john, kate; beforeEach( () => { return Promise.all( [ Client.get( 'john' ).then( client => ( john = client ) ), Client.get( 'kate' ).then( client => ( kate = client ) ) ] ); } ); afterEach( () => { clearBuffer(); return Promise.all( [ john.destroy(), kate.destroy() ] ); } ); describe( 'delete', () => { describe( 'by delete', () => { it( 'text from two elements', () => { john.setData( 'F[ooB]ar' ); kate.setData( 'Fo[oBa]r' ); john.delete(); kate.delete(); syncClients(); expectClients( 'Fr' ); } ); it( 'text from three elements', () => { john.setData( 'FooBa[rA]bc' ); kate.setData( 'Fo[oBa]rAbc' ); john.delete(); kate.delete(); syncClients(); expectClients( 'Fobc' ); } ); // https://github.com/ckeditor/ckeditor5-engine/issues/1492 it( 'delete same content from a few elements', () => { john.setData( 'F[ooBarAb]c' ); kate.setData( 'F[ooBarAb]c' ); john.delete(); kate.delete(); syncClients(); expectClients( 'Fc' ); john.undo(); kate.undo(); syncClients(); expectClients( 'FooBarAbc' ); } ); } ); } ); } );