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' );
} );
} );
} );
} );