UNPKG

1.84 kBJavaScriptView Raw
1// @flow
2
3const { toPost, toText } = require("../src/format");
4
5describe("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---
19Body
20`,
21 want: {
22 meta: {},
23 body: `---
24---
25Body
26`,
27 },
28 },
29 {
30 name: "with meta dosn't contain expedted keys",
31 text: `---
32tags
33---
34Body`,
35 want: {
36 meta: {},
37 body: `---
38tags
39---
40Body`,
41 },
42 },
43 {
44 name: "with meta contains expected keys",
45 text: `---
46tags:
47---
48Body`,
49 want: {
50 meta: {
51 tags: null,
52 },
53 body: `Body`,
54 },
55 },
56 {
57 name: "with tags in meta",
58 text: `---
59tags:
60- Medium
61- SDK
62- Node.js
63---
64Body`,
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: `---
75tags:
76- Medium
77- SDK
78- Node.js
79---
80
81Body`,
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
96describe("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: `---
123id: abcde
124---
125
126Body
127`,
128 },
129 ].forEach(c => {
130 it(c.name, () => {
131 expect(toText(c.post)).toEqual(c.want);
132 });
133 });
134});