|
|
@@ -218,7 +218,7 @@ describe( 'MentionUI', () => {
|
|
|
} );
|
|
|
} );
|
|
|
|
|
|
- it( 'should show panel with no more then 10 items for default static feed', () => {
|
|
|
+ describe( 'static list with large set of results', () => {
|
|
|
const bigList = {
|
|
|
marker: '@',
|
|
|
feed: [
|
|
|
@@ -226,19 +226,65 @@ describe( 'MentionUI', () => {
|
|
|
]
|
|
|
};
|
|
|
|
|
|
- return createClassicTestEditor( { feeds: [ bigList ] } )
|
|
|
- .then( () => {
|
|
|
- setData( model, '<paragraph>foo []</paragraph>' );
|
|
|
+ beforeEach( () => {
|
|
|
+ return createClassicTestEditor( { feeds: [ bigList ] } );
|
|
|
+ } );
|
|
|
|
|
|
- model.change( writer => {
|
|
|
- writer.insertText( '@', doc.selection.getFirstPosition() );
|
|
|
+ it( 'should show panel with no more then 10 items for default static feed', () => {
|
|
|
+ setData( model, '<paragraph>foo []</paragraph>' );
|
|
|
+
|
|
|
+ model.change( writer => {
|
|
|
+ writer.insertText( '@', doc.selection.getFirstPosition() );
|
|
|
+ } );
|
|
|
+
|
|
|
+ return waitForDebounce()
|
|
|
+ .then( () => {
|
|
|
+ expect( panelView.isVisible ).to.be.true;
|
|
|
+ expect( listView.items ).to.have.length( 10 );
|
|
|
} );
|
|
|
- } )
|
|
|
- .then( waitForDebounce )
|
|
|
- .then( () => {
|
|
|
- expect( panelView.isVisible ).to.be.true;
|
|
|
- expect( listView.items ).to.have.length( 10 );
|
|
|
+ } );
|
|
|
+
|
|
|
+ it( 'should scroll mention panel to the selected item', () => {
|
|
|
+ setData( model, '<paragraph>foo []</paragraph>' );
|
|
|
+
|
|
|
+ model.change( writer => {
|
|
|
+ writer.insertText( '@', doc.selection.getFirstPosition() );
|
|
|
} );
|
|
|
+
|
|
|
+ return waitForDebounce()
|
|
|
+ .then( () => {
|
|
|
+ expect( panelView.isVisible ).to.be.true;
|
|
|
+
|
|
|
+ expectChildViewsIsOnState( [ true, false, false, false, false, false, false, false, false, false ] );
|
|
|
+
|
|
|
+ const arrowDownEvtData = {
|
|
|
+ keyCode: keyCodes.arrowdown,
|
|
|
+ preventDefault: sinon.spy(),
|
|
|
+ stopPropagation: sinon.spy()
|
|
|
+ };
|
|
|
+
|
|
|
+ const arrowUpEvtData = {
|
|
|
+ keyCode: keyCodes.arrowup,
|
|
|
+ preventDefault: sinon.spy(),
|
|
|
+ stopPropagation: sinon.spy()
|
|
|
+ };
|
|
|
+
|
|
|
+ fireKeyDownEvent( arrowDownEvtData );
|
|
|
+ expect( mentionsView.element.scrollTop ).to.equal( 0 );
|
|
|
+
|
|
|
+ expectChildViewsIsOnState( [ false, true, false, false, false, false, false, false, false, false ] );
|
|
|
+
|
|
|
+ fireKeyDownEvent( arrowUpEvtData );
|
|
|
+ fireKeyDownEvent( arrowUpEvtData );
|
|
|
+
|
|
|
+ expectChildViewsIsOnState( [ false, false, false, false, false, false, false, false, false, true ] );
|
|
|
+ expect( mentionsView.element.scrollTop ).to.be.not.equal( 0 );
|
|
|
+
|
|
|
+ fireKeyDownEvent( arrowDownEvtData );
|
|
|
+ expectChildViewsIsOnState( [ true, false, false, false, false, false, false, false, false, false ] );
|
|
|
+ expect( mentionsView.element.scrollTop ).to.equal( 0 );
|
|
|
+ } );
|
|
|
+ } );
|
|
|
} );
|
|
|
|
|
|
describe( 'static list with default trigger', () => {
|