mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-17 02:51:36 -05:00
Add a couple Notebook smoke tests for rendering links/imgs (#18600)
This commit is contained in:
@@ -6,6 +6,7 @@
|
|||||||
import { Application } from '../../../../../automation';
|
import { Application } from '../../../../../automation';
|
||||||
import * as minimist from 'minimist';
|
import * as minimist from 'minimist';
|
||||||
import { afterSuite, beforeSuite } from '../../../utils';
|
import { afterSuite, beforeSuite } from '../../../utils';
|
||||||
|
import * as assert from 'assert';
|
||||||
|
|
||||||
export function setup(opts: minimist.ParsedArgs) {
|
export function setup(opts: minimist.ParsedArgs) {
|
||||||
describe('Notebook', () => {
|
describe('Notebook', () => {
|
||||||
@@ -143,9 +144,47 @@ export function setup(opts: minimist.ParsedArgs) {
|
|||||||
await app.workbench.sqlNotebook.waitForTrustedElements();
|
await app.workbench.sqlNotebook.waitForTrustedElements();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe('markdown', function () {
|
||||||
|
it('can create http link from markdown', async function () {
|
||||||
|
const app = this.app as Application;
|
||||||
|
const markdownString = '[Microsoft homepage](http://www.microsoft.com)';
|
||||||
|
const linkSelector = '.notebook-cell.active .notebook-text a[href=\'http://www.microsoft.com\']';
|
||||||
|
await verifyElementRendered(app, markdownString, linkSelector);
|
||||||
|
});
|
||||||
|
it('can create img from markdown', async function () {
|
||||||
|
const app = this.app as Application;
|
||||||
|
const markdownString = '';
|
||||||
|
// Verify image with the correct src and alt attributes is created
|
||||||
|
const imgSelector = '.notebook-cell.active .notebook-text img[src=\'https://www.ngdata.com/wp-content/uploads/2016/05/churn.jpg\'][alt=\'Churn-Index\']';
|
||||||
|
await verifyElementRendered(app, markdownString, imgSelector);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Verifies that the given markdown string is rendered into the expected HTML element in split view, rich text view
|
||||||
|
* and the text cell outside of edit mode.
|
||||||
|
* @param app The application
|
||||||
|
* @param markdownString The markdown text to enter for the element to render
|
||||||
|
* @param element The query selector for the element that is expected to be rendered
|
||||||
|
*/
|
||||||
|
async function verifyElementRendered(app: Application, markdownString: string, element: string): Promise<void> {
|
||||||
|
await app.workbench.sqlNotebook.newUntitledNotebook();
|
||||||
|
await app.workbench.sqlNotebook.addCell('markdown');
|
||||||
|
await app.workbench.sqlNotebook.textCellToolbar.changeTextCellView('Split View');
|
||||||
|
await app.workbench.sqlNotebook.waitForTypeInEditor(markdownString);
|
||||||
|
// Verify link is shown in split view
|
||||||
|
await app.code.waitForElement(element);
|
||||||
|
await app.workbench.sqlNotebook.textCellToolbar.changeTextCellView('Rich Text View');
|
||||||
|
// Verify link is shown in WYSIWYG view
|
||||||
|
await app.code.waitForElement(element);
|
||||||
|
// Verify link is shown outside of edit mode
|
||||||
|
await app.code.dispatchKeybinding('escape');
|
||||||
|
await app.code.waitForElement(element);
|
||||||
|
}
|
||||||
|
|
||||||
async function openAndRunNotebook(app: Application, filename: string): Promise<void> {
|
async function openAndRunNotebook(app: Application, filename: string): Promise<void> {
|
||||||
await app.workbench.sqlNotebook.openFile(filename);
|
await app.workbench.sqlNotebook.openFile(filename);
|
||||||
await app.workbench.sqlNotebook.notebookToolbar.waitForKernel('Python 3');
|
await app.workbench.sqlNotebook.notebookToolbar.waitForKernel('Python 3');
|
||||||
|
|||||||
Reference in New Issue
Block a user