diff --git a/.gitignore b/.gitignore index 8f36331cab..ca0b618803 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ .DS_store .vitest .vitest-attachments +.angular node_modules dist .lighthouse diff --git a/projects/code/src/codeblock/codeblock.test.ts b/projects/code/src/codeblock/codeblock.test.ts index f661feaba3..8988faabf9 100644 --- a/projects/code/src/codeblock/codeblock.test.ts +++ b/projects/code/src/codeblock/codeblock.test.ts @@ -83,6 +83,24 @@ function getTime(): number { expect(element.shadowRoot!.querySelector('.hljs-title')).toBeTruthy(); }); + it('should render source code if slotted within a
 block', async () => {
+    element.language = 'typescript';
+    element.innerHTML = '
const answer = 42;
'; + await elementIsStable(element); + + expect(element.shadowRoot!.querySelector('pre.hljs > code')!.textContent).toBe('const answer = 42;'); + expect(element.shadowRoot!.querySelector('.hljs-keyword')).toBeTruthy(); + }); + + it('should decode escaped HTML source from a slotted
 block', async () => {
+    element.language = 'html';
+    element.innerHTML = '
<nve-button>Save</nve-button>
'; + await elementIsStable(element); + + expect(element.shadowRoot!.querySelector('pre.hljs > code')!.textContent).toBe('Save'); + expect(element.shadowRoot!.querySelector('.hljs-name')!.textContent).toBe('nve-button'); + }); + it('should render HTML source code if slotted HTML content', async () => { element.language = 'typescript'; const div = document.createElement('div'); diff --git a/projects/code/src/codeblock/codeblock.ts b/projects/code/src/codeblock/codeblock.ts index 417b048b41..75bba22657 100644 --- a/projects/code/src/codeblock/codeblock.ts +++ b/projects/code/src/codeblock/codeblock.ts @@ -22,7 +22,7 @@ hljs.registerLanguage('shell', shell); * @documentation https://nvidia.github.io/elements/docs/code/codeblock/ * @since 0.1.0 * @entrypoint \@nvidia-elements/code/codeblock - * @slot - for declarative slotting of source code and not using the `code` property + * @slot - source code as text, a `