Skip to content

Commit aeec7f3

Browse files
committed
components/rendered-html: Add basic rendering tests
1 parent 6ea4d72 commit aeec7f3

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import { render } from '@ember/test-helpers';
2+
import { module, test } from 'qunit';
3+
4+
import { hbs } from 'ember-cli-htmlbars';
5+
6+
import { setupRenderingTest } from 'crates-io/tests/helpers';
7+
8+
module('Component | RenderedHtml', function (hooks) {
9+
setupRenderingTest(hooks);
10+
11+
test('renders HTML', async function (assert) {
12+
this.htmlContent = '<p>Hello <strong>world</strong>!</p>';
13+
14+
await render(hbs`<RenderedHtml @html={{this.htmlContent}} />`);
15+
16+
assert.dom('p').hasText('Hello world!');
17+
assert.dom('strong').hasText('world');
18+
});
19+
20+
test('renders code blocks with syntax highlighting', async function (assert) {
21+
this.htmlContent = '<pre><code class="language-rust">fn main() {}</code></pre>';
22+
23+
await render(hbs`<RenderedHtml @html={{this.htmlContent}} />`);
24+
25+
assert.dom('pre').exists();
26+
assert.dom('code.language-rust').hasText('fn main() {}');
27+
assert.dom('.hljs-keyword').hasText('fn');
28+
assert.dom('.hljs-title').hasText('main');
29+
});
30+
31+
test('renders mermaid diagrams', async function (assert) {
32+
let mermaidService = this.owner.lookup('service:mermaid');
33+
await mermaidService.loadTask.perform();
34+
35+
this.htmlContent = '<pre><code class="language-mermaid">graph TD\n A --> B</code></pre>';
36+
37+
await render(hbs`<RenderedHtml @html={{this.htmlContent}} />`);
38+
39+
assert.dom('pre').exists();
40+
assert.dom('code.language-mermaid svg.flowchart').exists();
41+
assert.dom('.nodeLabel').hasText('A');
42+
});
43+
});

0 commit comments

Comments
 (0)