From 6349f1bd49c2f22f3a3d6949cf10e580d0d32ffb Mon Sep 17 00:00:00 2001 From: Chris LaFreniere <40371649+chlafreniere@users.noreply.github.com> Date: Fri, 4 Dec 2020 14:42:24 -0800 Subject: [PATCH] Prevent Table from Disappearing due to exception when looking for tHead (#13680) * Prevent exception when tHead doesn't exist at node * Add test for no thead --- .../workbench/contrib/notebook/browser/turndownPluginGfm.ts | 4 ++-- .../notebook/test/browser/htmlMarkdownConverter.test.ts | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/sql/workbench/contrib/notebook/browser/turndownPluginGfm.ts b/src/sql/workbench/contrib/notebook/browser/turndownPluginGfm.ts index 1d4dceafae..18cb754188 100644 --- a/src/sql/workbench/contrib/notebook/browser/turndownPluginGfm.ts +++ b/src/sql/workbench/contrib/notebook/browser/turndownPluginGfm.ts @@ -99,12 +99,12 @@ rules['table'] = { // Ensure there are no blank lines content = content.replace('\n\n', '\n'); // if the headings are empty, add border line and headings to keep table format - if (node.tHead.innerText === '') { + if (node.tHead?.innerText === '') { let emptyHeader = '\n\n|'; let border = '\n|'; for (let i = 0; i < node.rows[0].childNodes.length; i++) { emptyHeader += ' |'; - border += ' --- |' + border += ' --- |'; } return emptyHeader + border + content + '\n\n'; } diff --git a/src/sql/workbench/contrib/notebook/test/browser/htmlMarkdownConverter.test.ts b/src/sql/workbench/contrib/notebook/test/browser/htmlMarkdownConverter.test.ts index bfe8453f46..04698f60ac 100644 --- a/src/sql/workbench/contrib/notebook/test/browser/htmlMarkdownConverter.test.ts +++ b/src/sql/workbench/contrib/notebook/test/browser/htmlMarkdownConverter.test.ts @@ -208,6 +208,12 @@ suite('HTML Markdown Converter', function (): void { htmlString = '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TestTestTest
testtesttest
testtesttest
testtesttest
testtesttest
\n'; assert.equal(htmlMarkdownConverter.convert(htmlString), `| Test | Test | Test |\n| --- | --- | --- |\n| test | test | test |\n| test | test | test |\n| test | test | test |\n| test | test | test |`, 'Table with header failed'); }); + + test('Should transform table with no thead', () => { + htmlString = '\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
TestTestTest
testtesttest
testtesttest
testtesttest
testtesttest
\n'; + assert.equal(htmlMarkdownConverter.convert(htmlString), `| Test | Test | Test |\n| --- | --- | --- |\n| test | test | test |\n| test | test | test |\n| test | test | test |\n| test | test | test |`, 'Table with no thead failed'); + }); + test('Should transform and tags', () => { htmlString = 'test string'; assert.equal(htmlMarkdownConverter.convert(htmlString), '**test string**', 'Basic bold test failed');