Skip to content

Commit 926c4a3

Browse files
committed
simple tests
1 parent bb806c9 commit 926c4a3

File tree

2 files changed

+81
-0
lines changed

2 files changed

+81
-0
lines changed

app/services/mermaid.js

100644100755
File mode changed.

tests/services/mermaid-test.js

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
import { module, test } from 'qunit';
2+
3+
import { setupTest } from 'cargo/tests/helpers';
4+
5+
let SIMPLE_HTML = `<h1>Test</h1>
6+
<div>
7+
<p>testing Mermaid</p>
8+
<p>testing <strong>Mermaid2</strong></p>
9+
</div>
10+
`;
11+
12+
let CODE_HTML = `<h1>Test</h1>
13+
<div>
14+
<p>testing Mermaid</p>
15+
<p>testing <strong>Mermaid2</strong></p>
16+
</div>
17+
<pre><code class='language-rust'>use serde::{Serialize, Deserialize};
18+
19+
#[derive(Serialize, Deserialize, Debug)]
20+
struct Point {
21+
x: i32,
22+
y: i32,
23+
}
24+
</code></pre>
25+
`;
26+
27+
let INVALID_MERMAID_HTML = `
28+
<h1>Test</h1>
29+
<div>
30+
<p>testing Mermaid</p>
31+
<p>testing <strong>Mermaid2</strong></p>
32+
<pre><code class='language-mermaid'>pie title What Voldemort doesn't have?
33+
"FRIENDS"
34+
"FAMILY" : 3
35+
"NOSE" : 45
36+
</code></pre>
37+
</div>
38+
`;
39+
40+
let VALID_MERMAID_HTML = `
41+
<h1>Test</h1>
42+
<div>
43+
<p>testing Mermaid</p>
44+
<p>testing <strong>Mermaid2</strong></p>
45+
<pre><code class='language-mermaid'>pie title What Voldemort doesn't have?
46+
"FRIENDS" : 2
47+
"FAMILY" : 3
48+
"NOSE" : 45
49+
</code></pre>
50+
</div>
51+
`;
52+
53+
module('Unit | Service | mermaid', function (hooks) {
54+
setupTest(hooks);
55+
56+
test('html does not change', async function (assert) {
57+
let service = this.owner.lookup('service:mermaid');
58+
59+
let parser = new DOMParser();
60+
61+
let testCases = [SIMPLE_HTML, CODE_HTML, INVALID_MERMAID_HTML];
62+
63+
for (let testCase of testCases) {
64+
let baseHtml = parser.parseFromString(testCase, 'text/html');
65+
let mermaidHtml = parser.parseFromString(await service.render(testCase), 'text/html');
66+
67+
assert.true(baseHtml.isEqualNode(mermaidHtml));
68+
}
69+
});
70+
71+
test('mermaid code is rendered', async function (assert) {
72+
let service = this.owner.lookup('service:mermaid');
73+
74+
let render = await service.render(VALID_MERMAID_HTML);
75+
76+
let parser = new DOMParser();
77+
let html = parser.parseFromString(render, 'text/html');
78+
79+
assert.strictEqual(html.querySelectorAll('pre > code.language-mermaid > svg').length, 1);
80+
});
81+
});

0 commit comments

Comments
 (0)