@@ -31,7 +31,7 @@ function getFakeToken(token: TestToken): Marked.Marked.Token {
3131 return token as unknown as Marked . Marked . Token ;
3232}
3333
34- function renderTemplateResult ( templateResult : Lit . TemplateResult ) : HTMLElement {
34+ function renderTemplateResult ( templateResult : Lit . LitTemplate ) : HTMLElement {
3535 const container = document . createElement ( 'container' ) ;
3636 Lit . render ( templateResult , container ) ;
3737 return container ;
@@ -77,6 +77,10 @@ describeWithEnvironment('MarkdownView', () => {
7777 describe ( 'MarkdownLitRenderer renderToken' , ( ) => {
7878 const renderer = new MarkdownView . MarkdownView . MarkdownLitRenderer ( ) ;
7979
80+ function getRenderedResultString ( token : Marked . Marked . Token ) {
81+ return ( renderer . renderToken ( token ) as Lit . TemplateResult ) . strings . join ( '' ) ;
82+ }
83+
8084 it ( 'wraps paragraph tokens in <p> tags' , ( ) => {
8185 const container = renderTemplateResult ( renderer . renderToken ( getFakeToken ( { type : 'paragraph' , tokens : [ ] } ) ) ) ;
8286
@@ -134,7 +138,7 @@ describeWithEnvironment('MarkdownView', () => {
134138 it ( 'renders link with valid key' , ( ) => {
135139 MarkdownView . MarkdownLinksMap . markdownLinks . set ( 'exampleLink' , 'https://web.dev/' ) ;
136140 const renderResult =
137- renderer . renderToken ( getFakeToken ( { type : 'link' , text : 'learn more' , href : 'exampleLink' } ) ) . strings . join ( '' ) ;
141+ getRenderedResultString ( getFakeToken ( { type : 'link' , text : 'learn more' , href : 'exampleLink' } ) ) ;
138142
139143 assert . isTrue ( renderResult . includes ( '<devtools-markdown-link' ) ) ;
140144 } ) ;
@@ -149,7 +153,7 @@ describeWithEnvironment('MarkdownView', () => {
149153 isIcon : true ,
150154 } ) ;
151155 const renderResult =
152- renderer . renderToken ( getFakeToken ( { type : 'image' , text : 'phone' , href : 'testExampleImage' } ) ) . strings . join ( '' ) ;
156+ getRenderedResultString ( getFakeToken ( { type : 'image' , text : 'phone' , href : 'testExampleImage' } ) ) ;
153157 assert . isTrue ( renderResult . includes ( '<devtools-markdown-image' ) ) ;
154158 } ) ;
155159
@@ -158,27 +162,25 @@ describeWithEnvironment('MarkdownView', () => {
158162 src : 'Images/phone-logo.png' ,
159163 isIcon : false ,
160164 } ) ;
161- const renderResult =
162- renderer . renderToken ( getFakeToken ( { type : 'image' , text : 'phone' , href : 'exampleImage' } ) ) . strings . join ( '' ) ;
165+ const renderResult = getRenderedResultString ( getFakeToken ( { type : 'image' , text : 'phone' , href : 'exampleImage' } ) ) ;
163166 assert . isTrue ( renderResult . includes ( '<devtools-markdown-image' ) ) ;
164167 } ) ;
165168
166169 it ( 'throws an error if invalid image key is provided' , ( ) => {
167170 assert . throws ( ( ) => MarkdownView . MarkdownImagesMap . getMarkdownImage ( 'testErrorImageLink' ) ) ;
168171 } ) ;
169172 it ( 'renders a heading correctly' , ( ) => {
170- const renderResult =
171- renderer . renderToken ( getFakeToken ( { type : 'heading' , text : 'a heading text' , depth : 3 } ) ) . strings . join ( '' ) ;
173+ const renderResult = getRenderedResultString ( getFakeToken ( { type : 'heading' , text : 'a heading text' , depth : 3 } ) ) ;
172174
173175 assert . isTrue ( renderResult . includes ( '<h3' ) ) ;
174176 } ) ;
175177 it ( 'renders strong correctly' , ( ) => {
176- const renderResult = renderer . renderToken ( getFakeToken ( { type : 'strong' , text : 'a strong text' } ) ) . strings . join ( '' ) ;
178+ const renderResult = getRenderedResultString ( getFakeToken ( { type : 'strong' , text : 'a strong text' } ) ) ;
177179
178180 assert . isTrue ( renderResult . includes ( '<strong' ) ) ;
179181 } ) ;
180182 it ( 'renders em correctly' , ( ) => {
181- const renderResult = renderer . renderToken ( getFakeToken ( { type : 'em' , text : 'em text' } ) ) . strings . join ( '' ) ;
183+ const renderResult = getRenderedResultString ( getFakeToken ( { type : 'em' , text : 'em text' } ) ) ;
182184
183185 assert . isTrue ( renderResult . includes ( '<em' ) ) ;
184186 } ) ;
@@ -194,46 +196,50 @@ describeWithEnvironment('MarkdownView', () => {
194196
195197 describe ( 'MarkdownInsightRenderer renderToken' , ( ) => {
196198 const renderer = new MarkdownView . MarkdownView . MarkdownInsightRenderer ( ) ;
199+
200+ function getRenderedLitTemplate ( token : Marked . Marked . Token ) {
201+ return renderer . renderToken ( token ) as Lit . TemplateResult ;
202+ }
197203 it ( 'renders link as texts' , ( ) => {
198- const result =
199- renderer . renderToken ( { type : 'link' , text : 'learn more' , href : 'https://example.test' } as Marked . Marked . Token ) ;
204+ const result = getRenderedLitTemplate (
205+ { type : 'link' , text : 'learn more' , href : 'https://example.test' } as Marked . Marked . Token ) ;
200206 assert . strictEqual ( result . values [ 0 ] , 'learn more' ) ;
201207 } ) ;
202208 it ( 'renders link urls as texts' , ( ) => {
203- const result = renderer . renderToken ( { type : 'link' , href : 'https://example.test' } as Marked . Marked . Token ) ;
209+ const result = getRenderedLitTemplate ( { type : 'link' , href : 'https://example.test' } as Marked . Marked . Token ) ;
204210 assert . strictEqual ( result . values [ 0 ] , 'https://example.test' ) ;
205211 } ) ;
206212 it ( 'does not render URLs with "javascript:"' , ( ) => {
207- const result = renderer . renderToken (
213+ const result = getRenderedLitTemplate (
208214 { type : 'link' , text : 'learn more' , href : 'javascript:alert("test")' } as Marked . Marked . Token ) ;
209215 assert . isUndefined ( result . values [ 0 ] ) ;
210216 } ) ;
211217 it ( 'does not render chrome:// URLs' , ( ) => {
212218 const result =
213- renderer . renderToken ( { type : 'link' , text : 'learn more' , href : 'chrome://settings' } as Marked . Marked . Token ) ;
219+ getRenderedLitTemplate ( { type : 'link' , text : 'learn more' , href : 'chrome://settings' } as Marked . Marked . Token ) ;
214220 assert . isUndefined ( result . values [ 0 ] ) ;
215221 } ) ;
216222 it ( 'does not render invalid URLs' , ( ) => {
217- const result = renderer . renderToken ( { type : 'link' , text : 'learn more' , href : '123' } as Marked . Marked . Token ) ;
223+ const result = getRenderedLitTemplate ( { type : 'link' , text : 'learn more' , href : '123' } as Marked . Marked . Token ) ;
218224 assert . isUndefined ( result . values [ 0 ] ) ;
219225 } ) ;
220226 it ( 'renders images as text' , ( ) => {
221- const result = renderer . renderToken (
227+ const result = getRenderedLitTemplate (
222228 { type : 'image' , text : 'learn more' , href : 'https://example.test' } as Marked . Marked . Token ) ;
223229 assert . strictEqual ( result . values [ 0 ] , 'learn more' ) ;
224230 } ) ;
225231 it ( 'renders image urls as text' , ( ) => {
226- const result = renderer . renderToken ( { type : 'image' , href : 'https://example.test' } as Marked . Marked . Token ) ;
232+ const result = getRenderedLitTemplate ( { type : 'image' , href : 'https://example.test' } as Marked . Marked . Token ) ;
227233 assert . strictEqual ( result . values [ 0 ] , 'https://example.test' ) ;
228234 } ) ;
229235 it ( 'renders headings as headings with the `insight` class' , ( ) => {
230- const renderResult = renderer . renderToken ( getFakeToken ( { type : 'heading' , text : 'a heading text' , depth : 3 } ) ) ;
236+ const renderResult = getRenderedLitTemplate ( getFakeToken ( { type : 'heading' , text : 'a heading text' , depth : 3 } ) ) ;
231237 const container = renderTemplateResult ( renderResult ) ;
232238 assert . isTrue (
233239 container . querySelector ( 'h3' ) ?. classList . contains ( 'insight' ) , 'Expected `insight`-class to be applied' ) ;
234240 } ) ;
235241 it ( 'renders unsupported tokens' , ( ) => {
236- const result = renderer . renderToken ( { type : 'html' , raw : '<!DOCTYPE html>' } as Marked . Marked . Token ) ;
242+ const result = getRenderedLitTemplate ( { type : 'html' , raw : '<!DOCTYPE html>' } as Marked . Marked . Token ) ;
237243 assert ( result . values . join ( '' ) . includes ( '<!DOCTYPE html>' ) ) ;
238244 } ) ;
239245 it ( 'detects language but default to provided' , ( ) => {
@@ -344,7 +350,7 @@ console.log('test')
344350 it ( 'renders using a custom renderer' , ( ) => {
345351 const codeBlock =
346352 renderString ( '`console.log()`' , 'code' , new class extends MarkdownView . MarkdownView . MarkdownLitRenderer {
347- override templateForToken ( token : Marked . Marked . Token ) : Lit . TemplateResult | null {
353+ override templateForToken ( token : Marked . Marked . Token ) : Lit . LitTemplate | null {
348354 if ( token . type === 'codespan' ) {
349355 return html `< code > overriden</ code > ` ;
350356 }
0 commit comments