Sfoglia il codice sorgente

Tests: Improved integration tests so they catch https://github.com/ckeditor/ckeditor5/issues/753.

Piotrek Koszuliński 8 anni fa
parent
commit
cc6738d0cb
1 ha cambiato i file con 18 aggiunte e 7 eliminazioni
  1. 18 7
      packages/ckeditor5-widget/tests/widget.js

+ 18 - 7
packages/ckeditor5-widget/tests/widget.js

@@ -5,7 +5,7 @@
 
 import VirtualTestEditor from '@ckeditor/ckeditor5-core/tests/_utils/virtualtesteditor';
 import Widget from '../src/widget';
-import Delete from '@ckeditor/ckeditor5-typing/src/delete';
+import Typing from '@ckeditor/ckeditor5-typing/src/typing';
 import MouseObserver from '@ckeditor/ckeditor5-engine/src/view/observer/mouseobserver';
 import buildModelConverter from '@ckeditor/ckeditor5-engine/src/conversion/buildmodelconverter';
 import { toWidget } from '../src/utils';
@@ -23,7 +23,7 @@ describe( 'Widget', () => {
 	let editor, model, doc, viewDocument;
 
 	beforeEach( () => {
-		return VirtualTestEditor.create( { plugins: [ Widget, Delete ] } )
+		return VirtualTestEditor.create( { plugins: [ Widget, Typing ] } )
 			.then( newEditor => {
 				editor = newEditor;
 				model = editor.model;
@@ -373,7 +373,8 @@ describe( 'Widget', () => {
 			test(
 				'should do nothing if other key is pressed',
 				'[<widget></widget>]<paragraph>foo</paragraph>',
-				keyCodes.a,
+				// Use a safe key (alt) to not trigger the Input features "unsafe keys" handler.
+				18,
 				'[<widget></widget>]<paragraph>foo</paragraph>'
 			);
 
@@ -703,7 +704,7 @@ describe( 'Widget', () => {
 				setModelData( model, data );
 				viewDocument.fire( 'keydown', new DomEventData(
 					viewDocument,
-					{ target: document.createElement( 'div' ), preventDefault: () => {} },
+					{ target: document.createElement( 'div' ), preventDefault() {} },
 					domEventDataMock
 				) );
 
@@ -721,11 +722,14 @@ describe( 'Widget', () => {
 			it( name, () => {
 				setModelData( model, input );
 				const scrollStub = sinon.stub( viewDocument, 'scrollToTheSelection' );
+				const domEventDataMock = {
+					keyCode: direction == 'backward' ? keyCodes.backspace : keyCodes.delete,
+				};
 
-				viewDocument.fire( 'delete', new DomEventData(
+				viewDocument.fire( 'keydown', new DomEventData(
 					viewDocument,
-					{ target: document.createElement( 'div' ), preventDefault: () => {} },
-					{ direction, unit: 'character', sequence: 0 }
+					{ target: document.createElement( 'div' ), preventDefault() {} },
+					domEventDataMock
 				) );
 
 				expect( getModelData( model ) ).to.equal( expected );
@@ -733,6 +737,13 @@ describe( 'Widget', () => {
 			} );
 		}
 
+		// Let's make this integration tests real which will help covering
+		// cases like https://github.com/ckeditor/ckeditor5/issues/753.
+		// Originally, this test file used the Delete feature only which was not "integrational" enough.
+		it( 'tests are executed with the Typing feature', () => {
+			expect( editor.plugins.get( 'Typing' ) ).to.not.be.undefined;
+		} );
+
 		test(
 			'should select widget when backspace is pressed',
 			'<widget></widget><paragraph>[]foo</paragraph>',