-
-
Notifications
You must be signed in to change notification settings - Fork 500
/
Copy pathrun-renderer.spec.ts
97 lines (92 loc) · 3.15 KB
/
run-renderer.spec.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import { describe, expect, it } from "vitest";
import { renderParagraphNode } from "./run-renderer";
describe("run-renderer", () => {
describe("renderParagraphNode", () => {
it("should return a rendered paragraph node if theres no elements", () => {
const output = renderParagraphNode({ element: { name: "w:p" }, index: 0, parent: undefined });
expect(output).to.deep.equal({
index: -1,
pathToParagraph: [],
runs: [],
text: "",
});
});
it("should return a rendered paragraph node if there are elements", () => {
const output = renderParagraphNode({
element: {
name: "w:p",
elements: [
{
name: "w:r",
elements: [
{
name: "w:t",
elements: [
{
type: "text",
text: "hello",
},
],
},
],
},
],
},
index: 0,
parent: undefined,
});
expect(output).to.deep.equal({
index: 0,
pathToParagraph: [0],
runs: [
{
end: 4,
index: 0,
parts: [
{
end: 4,
index: 0,
start: 0,
text: "hello",
},
],
start: 0,
text: "hello",
},
],
text: "hello",
});
});
it("should throw an error if the element is not a paragraph", () => {
expect(() => renderParagraphNode({ element: { name: "w:r" }, index: 0, parent: undefined })).to.throw();
});
it("should return blank defaults if run is empty", () => {
const output = renderParagraphNode({
element: {
name: "w:p",
elements: [
{
name: "w:r",
},
],
},
index: 0,
parent: undefined,
});
expect(output).to.deep.equal({
index: 0,
pathToParagraph: [0],
runs: [
{
end: 0,
index: -1,
parts: [],
start: 0,
text: "",
},
],
text: "",
});
});
});
});