fix: lazyload not working for katex

This commit is contained in:
Elian Doran 2024-09-11 21:04:41 +03:00
parent 8e7b8e6d1c
commit f8dba858c6
No known key found for this signature in database
2 changed files with 50 additions and 1 deletions

View File

@ -129,7 +129,7 @@ export async function renderEquation(
);
}
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
} else if ( engine === 'katex' ) {
} else if ( engine === 'katex' && window.katex !== undefined ) {
selectRenderMode(
element,
preview,

49
tests/lazyload.ts Normal file
View File

@ -0,0 +1,49 @@
import ClassicEditor from '@ckeditor/ckeditor5-editor-classic/src/classiceditor';
import MathUI from '../src/mathui';
import type { EditorConfig } from '@ckeditor/ckeditor5-core/src/editor/editorconfig';
import { expect } from 'chai';
describe( 'Lazy load', () => {
let editorElement: HTMLDivElement;
let editor: ClassicEditor;
let lazyLoadInvoked: boolean;
let mathUIFeature: MathUI;
function buildEditor( config: EditorConfig ) {
return ClassicEditor
.create( editorElement, {
...config,
plugins: [ MathUI ]
} )
.then( newEditor => {
editor = newEditor;
mathUIFeature = editor.plugins.get( MathUI );
} );
}
beforeEach( () => {
editorElement = document.createElement( 'div' );
document.body.appendChild( editorElement );
lazyLoadInvoked = false;
} );
afterEach( () => {
editorElement.remove();
return editor.destroy();
} );
it( 'initializes lazy load for KaTeX', async () => {
await buildEditor( {
math: {
engine: 'katex',
lazyLoad: async () => {
lazyLoadInvoked = true;
}
}
} );
mathUIFeature._showUI();
expect( lazyLoadInvoked ).to.be.true;
} );
} );