Jelajahi Sumber

Added error for a case that may be common when using createFromPAndO through createAt.

Piotrek Koszuliński 9 tahun lalu
induk
melakukan
aaa735e7d0

+ 6 - 1
packages/ckeditor5-engine/src/treemodel/position.js

@@ -510,7 +510,12 @@ export default class Position {
 	 */
 	static createFromParentAndOffset( parent, offset ) {
 		if ( !( parent instanceof Element ) ) {
-			throw new CKEditorError( 'position-in-text: You cannot make position in a text node.' );
+			/**
+			 * Position cannot be in located inside a text node.
+			 *
+			 * @error position-in-text
+			 */
+			throw new CKEditorError( 'position-in-text: Position cannot be in located inside a text node.' );
 		}
 
 		const path = parent.getPath();

+ 6 - 0
packages/ckeditor5-engine/tests/treemodel/position.js

@@ -107,6 +107,12 @@ describe( 'position', () => {
 			expect( Position.createFromParentAndOffset( li1, 2 ) ).to.have.property( 'path' ).that.deep.equals( [ 1, 0, 2 ] );
 			expect( Position.createFromParentAndOffset( li1, 3 ) ).to.have.property( 'path' ).that.deep.equals( [ 1, 0, 3 ] );
 		} );
+
+		it( 'throws when parent is not an element', () => {
+			expect( () => {
+				expect( Position.createFromParentAndOffset( b, 0 ) );
+			} ).to.throw( CKEditorError, /^position-in-text:/ );
+		} );
 	} );
 
 	describe( 'createAt', () => {