Ver código fonte

Add tests for markdown viewer

Martha Cryan 4 anos atrás
pai
commit
44743d5549
1 arquivos alterados com 53 adições e 2 exclusões
  1. 53 2
      packages/toc/test/toc.spec.ts

+ 53 - 2
packages/toc/test/toc.spec.ts

@@ -28,6 +28,10 @@ import {
 import { NBTestUtils, Mock, defaultRenderMime } from '@jupyterlab/testutils';
 import { WidgetTracker } from '@jupyterlab/apputils';
 import { FileEditor, FileEditorFactory } from '@jupyterlab/fileeditor';
+import {
+  MarkdownViewerFactory,
+  MarkdownDocument
+} from '@jupyterlab/markdownviewer';
 
 let manager: DocumentManager;
 let widget: ToC.TableOfContents;
@@ -72,6 +76,15 @@ beforeAll(async () => {
       }
     })
   );
+  registry.addWidgetFactory(
+    new MarkdownViewerFactory({
+      rendermime: defaultRenderMime(),
+      name: 'Markdown Preview',
+      primaryFileType: registry.getFileType('markdown'),
+      fileTypes: ['markdown'],
+      defaultRendered: []
+    })
+  );
   services = new Mock.ServiceManagerMock();
   manager = new DocumentManager({
     registry,
@@ -100,7 +113,7 @@ describe('@jupyterlab/toc', () => {
       registry = new ToC.TableOfContentsRegistry();
     });
 
-    describe('IGenerator<NotebookPanel>', () => {
+    describe('Notebook Generator: IGenerator<NotebookPanel>', () => {
       let notebookTracker: NotebookTracker;
       let notebookGenerator: ToC.TableOfContentsRegistry.IGenerator<NotebookPanel>;
       let notebookWidget: NotebookPanel;
@@ -138,7 +151,7 @@ describe('@jupyterlab/toc', () => {
       });
     });
 
-    describe('IGenerator<IDocumentWidget<FileEditor>>', () => {
+    describe('Markdown Generator: IGenerator<IDocumentWidget<FileEditor>>', () => {
       let markdownTracker: WidgetTracker<IDocumentWidget<FileEditor>>;
       let markdownGenerator: ToC.TableOfContentsRegistry.IGenerator<IDocumentWidget<
         FileEditor
@@ -177,5 +190,43 @@ describe('@jupyterlab/toc', () => {
         };
       });
     });
+
+    describe('Rendered Markdown Generator: IGenerator<MarkdownDocument>', () => {
+      let markdownTracker: WidgetTracker<MarkdownDocument>;
+      let markdownGenerator: ToC.TableOfContentsRegistry.IGenerator<MarkdownDocument>;
+      let markdownWidget: MarkdownDocument;
+
+      it('should create a markdown generator', () => {
+        markdownTracker = new WidgetTracker<MarkdownDocument>({
+          namespace: 'markdownviewer-widget'
+        });
+        markdownGenerator = ToC.createRenderedMarkdownGenerator(
+          markdownTracker,
+          widget,
+          NBTestUtils.defaultRenderMime().sanitizer
+        );
+      });
+
+      it('should add a markdown generator to the registry', () => {
+        registry.add(markdownGenerator);
+      });
+
+      it('should find the markdown generator', async () => {
+        const path = UUID.uuid4() + '.md';
+        const newMarkdownWidget = manager.createNew(path, 'Markdown Preview');
+        expect(newMarkdownWidget).toBeInstanceOf(MarkdownDocument);
+        markdownWidget = newMarkdownWidget as MarkdownDocument;
+        await markdownTracker.add(markdownWidget);
+        const foundNotebookGenerator = registry.find(markdownWidget);
+        expect(foundNotebookGenerator).toBeDefined();
+      });
+
+      it('should change current', async () => {
+        widget.current = {
+          widget: markdownWidget,
+          generator: markdownGenerator
+        };
+      });
+    });
   });
 });