1 |
|
2 |
|
3 | const { toPost, toText } = require("../src/format");
|
4 |
|
5 | describe("toPost", () => {
|
6 | [
|
7 | {
|
8 | name: "with empty text",
|
9 | text: ``,
|
10 | want: {
|
11 | meta: {},
|
12 | body: ``,
|
13 | },
|
14 | },
|
15 | {
|
16 | name: "with empty meta",
|
17 | text: `---
|
18 | ---
|
19 | Body
|
20 | `,
|
21 | want: {
|
22 | meta: {},
|
23 | body: `---
|
24 | ---
|
25 | Body
|
26 | `,
|
27 | },
|
28 | },
|
29 | {
|
30 | name: "with meta dosn't contain expedted keys",
|
31 | text: `---
|
32 | tags
|
33 | ---
|
34 | Body`,
|
35 | want: {
|
36 | meta: {},
|
37 | body: `---
|
38 | tags
|
39 | ---
|
40 | Body`,
|
41 | },
|
42 | },
|
43 | {
|
44 | name: "with meta contains expected keys",
|
45 | text: `---
|
46 | tags:
|
47 | ---
|
48 | Body`,
|
49 | want: {
|
50 | meta: {
|
51 | tags: null,
|
52 | },
|
53 | body: `Body`,
|
54 | },
|
55 | },
|
56 | {
|
57 | name: "with tags in meta",
|
58 | text: `---
|
59 | tags:
|
60 | - Medium
|
61 | - SDK
|
62 | - Node.js
|
63 | ---
|
64 | Body`,
|
65 | want: {
|
66 | meta: {
|
67 | tags: ["Medium", "SDK", "Node.js"],
|
68 | },
|
69 | body: `Body`,
|
70 | },
|
71 | },
|
72 | {
|
73 | name: "ignores empty line at the meta of body",
|
74 | text: `---
|
75 | tags:
|
76 | - Medium
|
77 | - SDK
|
78 | - Node.js
|
79 | ---
|
80 |
|
81 | Body`,
|
82 | want: {
|
83 | meta: {
|
84 | tags: ["Medium", "SDK", "Node.js"],
|
85 | },
|
86 | body: `Body`,
|
87 | },
|
88 | },
|
89 | ].forEach(c => {
|
90 | it(c.name, () => {
|
91 | expect(toPost(c.text)).toEqual(c.want);
|
92 | });
|
93 | });
|
94 | });
|
95 |
|
96 | describe("toText", () => {
|
97 | [
|
98 | {
|
99 | name: "empty",
|
100 | post: {
|
101 | meta: {},
|
102 | body: ``,
|
103 | },
|
104 | want: ``,
|
105 | },
|
106 | {
|
107 | name: "empty meta",
|
108 | post: {
|
109 | meta: {},
|
110 | body: `Body`,
|
111 | },
|
112 | want: `Body`,
|
113 | },
|
114 | {
|
115 | name: "with id",
|
116 | post: {
|
117 | meta: {
|
118 | id: "abcde",
|
119 | },
|
120 | body: `Body`,
|
121 | },
|
122 | want: `---
|
123 | id: abcde
|
124 | ---
|
125 |
|
126 | Body
|
127 | `,
|
128 | },
|
129 | ].forEach(c => {
|
130 | it(c.name, () => {
|
131 | expect(toText(c.post)).toEqual(c.want);
|
132 | });
|
133 | });
|
134 | });
|