瀏覽代碼

Throw error when trying to add an alias for not registered dispatcher.

Maciej Gołaszewski 6 年之前
父節點
當前提交
3a505ff6e3

+ 12 - 2
packages/ckeditor5-engine/src/conversion/conversion.js

@@ -85,7 +85,17 @@ export default class Conversion {
 	addAlias( alias, dispatcher ) {
 		const groupEntry = [ ...this._groups.entries() ].find( ( [ , dispatchers ] ) => dispatchers.includes( dispatcher ) );
 
-		const groupName = groupEntry ? groupEntry[ 0 ] : null;
+		if ( !groupEntry ) {
+			/**
+			 * Trying to register and alias for a dispatcher that nas not been registered.
+			 *
+			 * @error conversion-add-alias-dispatcher-not-registered
+			 */
+			throw new CKEditorError( 'conversion-add-alias-dispatcher-not-registered: ' +
+				'Trying to register and alias for a dispatcher that nas not been registered.' );
+		}
+
+		const groupName = groupEntry[ 0 ];
 
 		const helper = this._helpers.get( groupName );
 
@@ -97,7 +107,7 @@ export default class Conversion {
 			/**
 			 * Trying to register a group name that has already been registered.
 			 *
-			 * @error conversion-register-group-exists
+			 * @error conversion-group-exists
 			 */
 			throw new CKEditorError( 'conversion-group-exists: Trying to register a group name that has already been registered.' );
 		}

+ 6 - 0
packages/ckeditor5-engine/tests/conversion/conversion.js

@@ -38,6 +38,12 @@ describe( 'Conversion', () => {
 				conversion.addAlias( 'upcast', upcastDispaA );
 			} ).to.throw( CKEditorError, /conversion-group-exists/ );
 		} );
+
+		it( 'should throw when trying to add not registered dispatcher', () => {
+			expect( () => {
+				conversion.addAlias( 'foo', {} );
+			} ).to.throw( CKEditorError, /conversion-add-alias-dispatcher-not-registered/ );
+		} );
 	} );
 
 	describe( 'for()', () => {