@saltcorn/markup 1.4.1 → 1.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/form.test.d.ts +2 -0
- package/dist/form.test.d.ts.map +1 -0
- package/dist/form.test.js +341 -0
- package/dist/form.test.js.map +1 -0
- package/dist/helpers.test.d.ts +2 -0
- package/dist/helpers.test.d.ts.map +1 -0
- package/dist/helpers.test.js +338 -0
- package/dist/helpers.test.js.map +1 -0
- package/dist/layout.test.d.ts +2 -0
- package/dist/layout.test.d.ts.map +1 -0
- package/dist/layout.test.js +584 -0
- package/dist/layout.test.js.map +1 -0
- package/dist/layout_utils.test.d.ts +2 -0
- package/dist/layout_utils.test.d.ts.map +1 -0
- package/dist/layout_utils.test.js +204 -0
- package/dist/layout_utils.test.js.map +1 -0
- package/dist/markup.test.d.ts +2 -0
- package/dist/markup.test.d.ts.map +1 -0
- package/dist/markup.test.js +695 -0
- package/dist/markup.test.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,584 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
const globals_1 = require("@jest/globals");
|
|
40
|
+
const layout_1 = __importDefault(require("./layout"));
|
|
41
|
+
// import { makeSegments, applyTextStyle, textStyleToArray } from "./internal";
|
|
42
|
+
// import renderMJML = require("./mjml-layout");
|
|
43
|
+
const mjml_layout_1 = require("./mjml-layout");
|
|
44
|
+
// import tags = require("./tags");
|
|
45
|
+
const tags = __importStar(require("./tags"));
|
|
46
|
+
const { p } = tags;
|
|
47
|
+
(0, globals_1.describe)("layout", () => {
|
|
48
|
+
(0, globals_1.it)("renders a simple layout", () => {
|
|
49
|
+
const blockDispatch = {
|
|
50
|
+
wrapTop(segment, ix, s) {
|
|
51
|
+
return p(s);
|
|
52
|
+
},
|
|
53
|
+
reverseIt({ theString }) {
|
|
54
|
+
return theString.split("").reverse().join("");
|
|
55
|
+
},
|
|
56
|
+
};
|
|
57
|
+
const markup = { above: [{ type: "reverseIt", theString: "foobar" }] };
|
|
58
|
+
(0, globals_1.expect)((0, layout_1.default)({ blockDispatch, layout: markup })).toBe("<p>raboof</p>");
|
|
59
|
+
});
|
|
60
|
+
(0, globals_1.it)("renders a nested layout", () => {
|
|
61
|
+
const blockDispatch = {};
|
|
62
|
+
const markup = {
|
|
63
|
+
above: [
|
|
64
|
+
{
|
|
65
|
+
besides: [
|
|
66
|
+
{ type: "blank", contents: "hello" },
|
|
67
|
+
{ type: "blank", contents: "world" },
|
|
68
|
+
],
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
besides: [
|
|
72
|
+
{ type: "blank", contents: "bar" },
|
|
73
|
+
{ type: "blank", contents: "foo" },
|
|
74
|
+
],
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
};
|
|
78
|
+
(0, globals_1.expect)((0, layout_1.default)({ blockDispatch, layout: markup })).toBe('<div class="row"><div class="col-6">hello</div><div class="col-6">world</div></div><div class="row"><div class="col-6">bar</div><div class="col-6">foo</div></div>');
|
|
79
|
+
});
|
|
80
|
+
(0, globals_1.it)("renders a container custom element", () => {
|
|
81
|
+
const blockDispatch = {};
|
|
82
|
+
const markup = {
|
|
83
|
+
type: "container",
|
|
84
|
+
htmlElement: "section",
|
|
85
|
+
contents: { type: "blank", contents: "bar" },
|
|
86
|
+
};
|
|
87
|
+
(0, globals_1.expect)((0, layout_1.default)({ blockDispatch, layout: markup })).toBe('<section style=" ">bar</section>');
|
|
88
|
+
});
|
|
89
|
+
(0, globals_1.it)("renders a container custom class", () => {
|
|
90
|
+
const blockDispatch = {};
|
|
91
|
+
const markup = {
|
|
92
|
+
type: "container",
|
|
93
|
+
contents: { type: "blank", contents: "bar" },
|
|
94
|
+
customClass: "py-5",
|
|
95
|
+
};
|
|
96
|
+
(0, globals_1.expect)((0, layout_1.default)({ blockDispatch, layout: markup })).toBe('<div class="py-5" style=" ">bar</div>');
|
|
97
|
+
});
|
|
98
|
+
(0, globals_1.it)("renders a container custom element with class", () => {
|
|
99
|
+
const blockDispatch = {};
|
|
100
|
+
const markup = {
|
|
101
|
+
type: "container",
|
|
102
|
+
htmlElement: "section",
|
|
103
|
+
contents: { type: "blank", contents: "bar" },
|
|
104
|
+
customClass: "py-5",
|
|
105
|
+
};
|
|
106
|
+
(0, globals_1.expect)((0, layout_1.default)({ blockDispatch, layout: markup })).toBe('<section class="py-5" style=" ">bar</section>');
|
|
107
|
+
});
|
|
108
|
+
(0, globals_1.it)("renders a nested container custom element", () => {
|
|
109
|
+
const blockDispatch = {};
|
|
110
|
+
const markup = {
|
|
111
|
+
type: "container",
|
|
112
|
+
htmlElement: "section",
|
|
113
|
+
contents: {
|
|
114
|
+
type: "container",
|
|
115
|
+
htmlElement: "section",
|
|
116
|
+
contents: { type: "blank", contents: "bar" },
|
|
117
|
+
},
|
|
118
|
+
customClass: "py-5",
|
|
119
|
+
};
|
|
120
|
+
(0, globals_1.expect)((0, layout_1.default)({ blockDispatch, layout: markup })).toBe('<section class="py-5" style=" "><section style=" ">bar</section></section>');
|
|
121
|
+
});
|
|
122
|
+
(0, globals_1.it)("renders a container with padding", () => {
|
|
123
|
+
const blockDispatch = {};
|
|
124
|
+
const markup = {
|
|
125
|
+
type: "container",
|
|
126
|
+
style: {
|
|
127
|
+
padding: "2rem",
|
|
128
|
+
},
|
|
129
|
+
contents: { type: "blank", contents: "bar" },
|
|
130
|
+
};
|
|
131
|
+
(0, globals_1.expect)((0, layout_1.default)({ blockDispatch, layout: markup })).toBe('<div style="padding:2rem; ">bar</div>');
|
|
132
|
+
});
|
|
133
|
+
(0, globals_1.it)("renders styled text in container with single textStyle", () => {
|
|
134
|
+
const blockDispatch = {};
|
|
135
|
+
const markup = {
|
|
136
|
+
type: "container",
|
|
137
|
+
contents: { type: "blank", contents: "bar", textStyle: "h1" },
|
|
138
|
+
};
|
|
139
|
+
(0, globals_1.expect)((0, layout_1.default)({ blockDispatch, layout: markup })).toBe('<div style=" "><h1>bar</h1></div>');
|
|
140
|
+
const markup1 = {
|
|
141
|
+
type: "container",
|
|
142
|
+
contents: { type: "blank", contents: "bar", textStyle: "fw-bold" },
|
|
143
|
+
};
|
|
144
|
+
(0, globals_1.expect)((0, layout_1.default)({ blockDispatch, layout: markup1 })).toBe('<div style=" "><span class="fw-bold">bar</span></div>');
|
|
145
|
+
});
|
|
146
|
+
(0, globals_1.it)("renders styled text in container with array textStyle", () => {
|
|
147
|
+
const blockDispatch = {};
|
|
148
|
+
const markup = {
|
|
149
|
+
type: "container",
|
|
150
|
+
contents: { type: "blank", contents: "bar", textStyle: ["h1"] },
|
|
151
|
+
};
|
|
152
|
+
(0, globals_1.expect)((0, layout_1.default)({ blockDispatch, layout: markup })).toBe('<div style=" "><h1>bar</h1></div>');
|
|
153
|
+
const markup1 = {
|
|
154
|
+
type: "container",
|
|
155
|
+
contents: {
|
|
156
|
+
type: "blank",
|
|
157
|
+
contents: "bar",
|
|
158
|
+
textStyle: ["fw-bold", "small"],
|
|
159
|
+
},
|
|
160
|
+
};
|
|
161
|
+
(0, globals_1.expect)((0, layout_1.default)({ blockDispatch, layout: markup1 })).toBe('<div style=" "><span class="fw-bold small">bar</span></div>');
|
|
162
|
+
const markup2 = {
|
|
163
|
+
type: "container",
|
|
164
|
+
contents: {
|
|
165
|
+
type: "blank",
|
|
166
|
+
contents: "bar",
|
|
167
|
+
textStyle: ["h1", "fw-bold", "small"],
|
|
168
|
+
},
|
|
169
|
+
};
|
|
170
|
+
(0, globals_1.expect)((0, layout_1.default)({ blockDispatch, layout: markup2 })).toBe('<div style=" "><h1 class="fw-bold small">bar</h1></div>');
|
|
171
|
+
});
|
|
172
|
+
(0, globals_1.it)("renders top-level text styled with array textStyle", () => {
|
|
173
|
+
const blockDispatch = {};
|
|
174
|
+
const markup = {
|
|
175
|
+
type: "blank",
|
|
176
|
+
contents: "bar",
|
|
177
|
+
textStyle: ["h1"],
|
|
178
|
+
};
|
|
179
|
+
(0, globals_1.expect)((0, layout_1.default)({ blockDispatch, layout: markup })).toBe("<h1>bar</h1>");
|
|
180
|
+
const markup1 = {
|
|
181
|
+
type: "blank",
|
|
182
|
+
contents: "bar",
|
|
183
|
+
textStyle: ["fw-bold", "small"],
|
|
184
|
+
};
|
|
185
|
+
(0, globals_1.expect)((0, layout_1.default)({ blockDispatch, layout: markup1 })).toBe('<span class="fw-bold small">bar</span>');
|
|
186
|
+
});
|
|
187
|
+
(0, globals_1.it)("renders text with class", () => {
|
|
188
|
+
const blockDispatch = {};
|
|
189
|
+
(0, globals_1.expect)((0, layout_1.default)({
|
|
190
|
+
blockDispatch,
|
|
191
|
+
layout: {
|
|
192
|
+
type: "blank",
|
|
193
|
+
contents: "bar",
|
|
194
|
+
customClass: ["myclass"],
|
|
195
|
+
},
|
|
196
|
+
})).toBe('<span class="myclass">bar</span>');
|
|
197
|
+
(0, globals_1.expect)((0, layout_1.default)({
|
|
198
|
+
blockDispatch,
|
|
199
|
+
layout: {
|
|
200
|
+
type: "blank",
|
|
201
|
+
contents: "bar",
|
|
202
|
+
textStyle: ["h1"],
|
|
203
|
+
customClass: ["myclass"],
|
|
204
|
+
},
|
|
205
|
+
})).toBe('<h1 class="myclass">bar</h1>');
|
|
206
|
+
(0, globals_1.expect)((0, layout_1.default)({
|
|
207
|
+
blockDispatch,
|
|
208
|
+
layout: {
|
|
209
|
+
type: "blank",
|
|
210
|
+
contents: "bar",
|
|
211
|
+
textStyle: ["muted"],
|
|
212
|
+
customClass: ["myclass"],
|
|
213
|
+
},
|
|
214
|
+
})).toBe('<span class="muted myclass">bar</span>');
|
|
215
|
+
(0, globals_1.expect)((0, layout_1.default)({
|
|
216
|
+
blockDispatch,
|
|
217
|
+
layout: {
|
|
218
|
+
type: "container",
|
|
219
|
+
contents: {
|
|
220
|
+
type: "blank",
|
|
221
|
+
contents: "bar",
|
|
222
|
+
customClass: ["myclass"],
|
|
223
|
+
},
|
|
224
|
+
},
|
|
225
|
+
})).toBe('<div style=" "><span class="myclass">bar</span></div>');
|
|
226
|
+
});
|
|
227
|
+
(0, globals_1.it)("renders a dropdown menu", () => {
|
|
228
|
+
const blockDispatch = {};
|
|
229
|
+
const markup = {
|
|
230
|
+
type: "dropdown_menu",
|
|
231
|
+
action_style: "btn-primary",
|
|
232
|
+
label: "Actions",
|
|
233
|
+
contents: [
|
|
234
|
+
{ type: "blank", contents: "Option 1" },
|
|
235
|
+
{ type: "blank", contents: "Option 2" },
|
|
236
|
+
],
|
|
237
|
+
};
|
|
238
|
+
const result = (0, layout_1.default)({ blockDispatch, layout: markup });
|
|
239
|
+
(0, globals_1.expect)(result).toMatch(/^<div class="dropdown d-inline"><button class="btn btn-primary d-inline-block dropdown-toggle" data-boundary="viewport" type="button" id="actiondd[a-f0-9]+" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Actions<\/button><div class="dropdown-menu" aria-labelledby="actiondd[a-f0-9]+"><div class="d-flex flex-column px-2">Option 1Option 2<\/div><\/div><\/div>$/);
|
|
240
|
+
});
|
|
241
|
+
(0, globals_1.it)("renders a card with a footer", () => {
|
|
242
|
+
const blockDispatch = {};
|
|
243
|
+
const markup = {
|
|
244
|
+
type: "card",
|
|
245
|
+
title: "Card Title",
|
|
246
|
+
contents: { type: "blank", contents: "Card Body" },
|
|
247
|
+
footer: { type: "blank", contents: "Card footer" },
|
|
248
|
+
};
|
|
249
|
+
const result = (0, layout_1.default)({ blockDispatch, layout: markup });
|
|
250
|
+
(0, globals_1.expect)(result).toContain('<div class="card mt-4 shadow">');
|
|
251
|
+
(0, globals_1.expect)(result).toContain('<span class="card-header">');
|
|
252
|
+
(0, globals_1.expect)(result).toContain('<h5 class="m-0 fw-bold text-primary d-inline">Card Title</h5>');
|
|
253
|
+
(0, globals_1.expect)(result).toContain('<div class="card-body">Card Body</div>');
|
|
254
|
+
(0, globals_1.expect)(result).toContain('<div class="card-footer">Card footer</div>');
|
|
255
|
+
(0, globals_1.expect)(result).toMatch(/<\/div>\s*<\/div>$/);
|
|
256
|
+
});
|
|
257
|
+
(0, globals_1.it)("renders a container with background image", () => {
|
|
258
|
+
const blockDispatch = {};
|
|
259
|
+
const markup = {
|
|
260
|
+
type: "container",
|
|
261
|
+
bgType: "Image",
|
|
262
|
+
bgFileId: "123",
|
|
263
|
+
contents: { type: "blank", contents: "Content with background" },
|
|
264
|
+
};
|
|
265
|
+
const result = (0, layout_1.default)({ blockDispatch, layout: markup });
|
|
266
|
+
(0, globals_1.expect)(result).toContain('<img class="containerbgimage " style="object-fit:contain" alt="" src="/files/serve/123">');
|
|
267
|
+
(0, globals_1.expect)(result).toContain("Content with background");
|
|
268
|
+
});
|
|
269
|
+
});
|
|
270
|
+
(0, globals_1.describe)("render", () => {
|
|
271
|
+
(0, globals_1.it)("renders a layout with multiple nested containers", () => {
|
|
272
|
+
const blockDispatch = {};
|
|
273
|
+
const markup = {
|
|
274
|
+
type: "container",
|
|
275
|
+
contents: {
|
|
276
|
+
type: "container",
|
|
277
|
+
contents: {
|
|
278
|
+
type: "container",
|
|
279
|
+
contents: { type: "blank", contents: "Nested Content" },
|
|
280
|
+
},
|
|
281
|
+
},
|
|
282
|
+
};
|
|
283
|
+
const result = (0, layout_1.default)({ blockDispatch, layout: markup });
|
|
284
|
+
(0, globals_1.expect)(result).toBe('<div style=" "><div style=" "><div style=" ">Nested Content</div></div></div>');
|
|
285
|
+
});
|
|
286
|
+
(0, globals_1.it)("renders a layout with a custom class", () => {
|
|
287
|
+
const blockDispatch = {};
|
|
288
|
+
const markup = {
|
|
289
|
+
type: "container",
|
|
290
|
+
customClass: ["custom-class"],
|
|
291
|
+
contents: { type: "blank", contents: "Content with class" },
|
|
292
|
+
};
|
|
293
|
+
const result = (0, layout_1.default)({ blockDispatch, layout: markup });
|
|
294
|
+
(0, globals_1.expect)(result).toBe('<div class="custom-class" style=" ">Content with class</div>');
|
|
295
|
+
});
|
|
296
|
+
(0, globals_1.it)("renders a layout with inline styles", () => {
|
|
297
|
+
const blockDispatch = {};
|
|
298
|
+
const markup = {
|
|
299
|
+
type: "container",
|
|
300
|
+
style: { backgroundColor: "blue", color: "white" },
|
|
301
|
+
contents: { type: "blank", contents: "Styled Content" },
|
|
302
|
+
};
|
|
303
|
+
const result = (0, layout_1.default)({ blockDispatch, layout: markup });
|
|
304
|
+
(0, globals_1.expect)(result).toBe('<div style="backgroundColor:blue;color:white; ">Styled Content</div>');
|
|
305
|
+
});
|
|
306
|
+
(0, globals_1.it)("renders a layout with a combination of textStyle and customClass", () => {
|
|
307
|
+
const blockDispatch = {};
|
|
308
|
+
const markup = {
|
|
309
|
+
type: "blank",
|
|
310
|
+
contents: "Styled and Classed Content",
|
|
311
|
+
textStyle: ["h1", "fw-bold"],
|
|
312
|
+
customClass: ["custom-class"],
|
|
313
|
+
};
|
|
314
|
+
const result = (0, layout_1.default)({ blockDispatch, layout: markup });
|
|
315
|
+
(0, globals_1.expect)(result).toBe('<h1 class="fw-bold custom-class">Styled and Classed Content</h1>');
|
|
316
|
+
});
|
|
317
|
+
(0, globals_1.it)("renders a layout with an empty container", () => {
|
|
318
|
+
const blockDispatch = {};
|
|
319
|
+
const markup = {
|
|
320
|
+
type: "container",
|
|
321
|
+
contents: null,
|
|
322
|
+
};
|
|
323
|
+
const result = (0, layout_1.default)({ blockDispatch, layout: markup });
|
|
324
|
+
(0, globals_1.expect)(result).toBe('<div style=" "></div>');
|
|
325
|
+
});
|
|
326
|
+
(0, globals_1.it)("renders a layout with a dropdown menu containing multiple actions", () => {
|
|
327
|
+
const blockDispatch = {};
|
|
328
|
+
const markup = {
|
|
329
|
+
type: "dropdown_menu",
|
|
330
|
+
action_style: "btn-secondary",
|
|
331
|
+
label: "Menu",
|
|
332
|
+
contents: [
|
|
333
|
+
{ type: "blank", contents: "Action 1" },
|
|
334
|
+
{ type: "blank", contents: "Action 2" },
|
|
335
|
+
{ type: "blank", contents: "Action 3" },
|
|
336
|
+
],
|
|
337
|
+
};
|
|
338
|
+
const result = (0, layout_1.default)({ blockDispatch, layout: markup });
|
|
339
|
+
(0, globals_1.expect)(result).toContain('<div class="dropdown d-inline">');
|
|
340
|
+
(0, globals_1.expect)(result).toContain('class="btn btn-secondary d-inline-block dropdown-toggle"');
|
|
341
|
+
(0, globals_1.expect)(result).toContain(">Menu</button>");
|
|
342
|
+
(0, globals_1.expect)(result).toContain('<div class="dropdown-menu"');
|
|
343
|
+
(0, globals_1.expect)(result).toContain("Action 1Action 2Action 3</div>");
|
|
344
|
+
});
|
|
345
|
+
(0, globals_1.it)("renders a card layout with title, body, and footer", () => {
|
|
346
|
+
const blockDispatch = {};
|
|
347
|
+
const markup = {
|
|
348
|
+
type: "card",
|
|
349
|
+
title: "Card Title",
|
|
350
|
+
contents: { type: "blank", contents: "Card Body" },
|
|
351
|
+
footer: { type: "blank", contents: "Card Footer" },
|
|
352
|
+
};
|
|
353
|
+
const result = (0, layout_1.default)({ blockDispatch, layout: markup });
|
|
354
|
+
(0, globals_1.expect)(result).toContain('<div class="card mt-4 shadow">');
|
|
355
|
+
(0, globals_1.expect)(result).toContain('<span class="card-header">');
|
|
356
|
+
(0, globals_1.expect)(result).toContain('<h5 class="m-0 fw-bold text-primary d-inline">Card Title</h5>');
|
|
357
|
+
(0, globals_1.expect)(result).toContain('<div class="card-body">Card Body</div>');
|
|
358
|
+
(0, globals_1.expect)(result).toContain('<div class="card-footer">Card Footer</div>');
|
|
359
|
+
});
|
|
360
|
+
(0, globals_1.it)("renders a card layout with class", () => {
|
|
361
|
+
const blockDispatch = {};
|
|
362
|
+
const markup = {
|
|
363
|
+
type: "card",
|
|
364
|
+
title: "Card Title",
|
|
365
|
+
contents: { type: "blank", contents: "Card Body" },
|
|
366
|
+
class: "foo",
|
|
367
|
+
};
|
|
368
|
+
const result = (0, layout_1.default)({ blockDispatch, layout: markup });
|
|
369
|
+
(0, globals_1.expect)(result).toBe('<div class="card mt-4 shadow foo"><span class="card-header"><h5 class="m-0 fw-bold text-primary d-inline">Card Title</h5></span><div class="card-body">Card Body</div></div>');
|
|
370
|
+
});
|
|
371
|
+
(0, globals_1.it)("renders a layout with a container and background image", () => {
|
|
372
|
+
const blockDispatch = {};
|
|
373
|
+
const markup = {
|
|
374
|
+
type: "container",
|
|
375
|
+
bgType: "Image",
|
|
376
|
+
bgFileId: "456",
|
|
377
|
+
contents: { type: "blank", contents: "Background Content" },
|
|
378
|
+
};
|
|
379
|
+
const result = (0, layout_1.default)({ blockDispatch, layout: markup });
|
|
380
|
+
(0, globals_1.expect)(result).toContain('<img class="containerbgimage " style="object-fit:contain" alt="" src="/files/serve/456">');
|
|
381
|
+
(0, globals_1.expect)(result).toContain("Background Content");
|
|
382
|
+
});
|
|
383
|
+
(0, globals_1.it)("renders a layout with breadcrumbs", () => {
|
|
384
|
+
const blockDispatch = {};
|
|
385
|
+
const markup = {
|
|
386
|
+
type: "breadcrumbs",
|
|
387
|
+
crumbs: [
|
|
388
|
+
{ text: "Home", href: "/" },
|
|
389
|
+
{ text: "Page", href: "/page" },
|
|
390
|
+
],
|
|
391
|
+
right: "Right Content",
|
|
392
|
+
after: "After Content",
|
|
393
|
+
};
|
|
394
|
+
const result = (0, layout_1.default)({ blockDispatch, layout: markup });
|
|
395
|
+
(0, globals_1.expect)(result).toBe(`<nav aria-label="breadcrumb"><ol class="breadcrumb"><li class="breadcrumb-item"><a href="/">Home</a></li><li class="breadcrumb-item fw-bold" aria-current="page"><a href="/page">Page</a></li><li class="ms-3">After Content</li><li class="ms-auto">Right Content</li></ol></nav>`);
|
|
396
|
+
});
|
|
397
|
+
(0, globals_1.it)("renders a layout with a table", () => {
|
|
398
|
+
const blockDispatch = {};
|
|
399
|
+
const markup = {
|
|
400
|
+
type: "table",
|
|
401
|
+
rows: 2,
|
|
402
|
+
columns: 2,
|
|
403
|
+
contents: [
|
|
404
|
+
[
|
|
405
|
+
{ type: "blank", contents: "Cell 1" },
|
|
406
|
+
{ type: "blank", contents: "Cell 2" },
|
|
407
|
+
],
|
|
408
|
+
[
|
|
409
|
+
{ type: "blank", contents: "Cell 3" },
|
|
410
|
+
{ type: "blank", contents: "Cell 4" },
|
|
411
|
+
],
|
|
412
|
+
],
|
|
413
|
+
};
|
|
414
|
+
const result = (0, layout_1.default)({ blockDispatch, layout: markup });
|
|
415
|
+
(0, globals_1.expect)(result).toBe("<table><tbody><tr><td>Cell 1</td><td>Cell 2</td></tr><tr><td>Cell 3</td><td>Cell 4</td></tr></tbody></table>");
|
|
416
|
+
});
|
|
417
|
+
(0, globals_1.it)("renders a layout with an image", () => {
|
|
418
|
+
const blockDispatch = {};
|
|
419
|
+
const markup = {
|
|
420
|
+
type: "image",
|
|
421
|
+
srctype: "File",
|
|
422
|
+
fileid: "123",
|
|
423
|
+
alt: "Test image",
|
|
424
|
+
style: { width: "100px", height: "100px" },
|
|
425
|
+
};
|
|
426
|
+
const result = (0, layout_1.default)({ blockDispatch, layout: markup });
|
|
427
|
+
(0, globals_1.expect)(result).toBe(`<img alt="Test image" style="width:100px;height:100px" src="/files/serve/123">`);
|
|
428
|
+
});
|
|
429
|
+
(0, globals_1.it)("renders a layout with a link", () => {
|
|
430
|
+
const blockDispatch = {};
|
|
431
|
+
const markup = {
|
|
432
|
+
type: "link",
|
|
433
|
+
url: "/test",
|
|
434
|
+
text: "Click Me",
|
|
435
|
+
link_style: "btn btn-primary",
|
|
436
|
+
link_size: "btn-lg",
|
|
437
|
+
link_icon: "fa fa-link",
|
|
438
|
+
};
|
|
439
|
+
const result = (0, layout_1.default)({ blockDispatch, layout: markup });
|
|
440
|
+
(0, globals_1.expect)(result).toBe('<a href="/test" class="btn btn-primary btn-lg d-inline-block"><i class="fa fa-link"></i> Click Me</a>');
|
|
441
|
+
});
|
|
442
|
+
(0, globals_1.it)("renders a layout with a line break", () => {
|
|
443
|
+
const blockDispatch = {};
|
|
444
|
+
const markup = {
|
|
445
|
+
type: "line_break",
|
|
446
|
+
hr: true,
|
|
447
|
+
};
|
|
448
|
+
const result = (0, layout_1.default)({ blockDispatch, layout: markup });
|
|
449
|
+
(0, globals_1.expect)(result).toBe("<hr>");
|
|
450
|
+
});
|
|
451
|
+
(0, globals_1.it)("render a layout with search bar", () => {
|
|
452
|
+
const blockDispatch = {};
|
|
453
|
+
const markup = {
|
|
454
|
+
type: "search_bar",
|
|
455
|
+
has_dropdown: true,
|
|
456
|
+
autofocus: true,
|
|
457
|
+
contents: { type: "blank", contents: "Search Content" },
|
|
458
|
+
};
|
|
459
|
+
const result = (0, layout_1.default)({ blockDispatch, layout: markup });
|
|
460
|
+
(0, globals_1.expect)(result).toMatch(/^<form action="\/search" method="get"><div class="input-group search-bar" id="search-input-group-[a-f0-9]+"><button class="btn btn-outline-secondary search-bar" type="submit" id="button-search-submit"><i class="fas fa-search"><\/i><\/button><input type="search" class="form-control search-bar br-none" autofocus placeholder="Search for..." id="inputq_[a-f0-9]+" name="q" aria-label="Search" aria-describedby="button-search-submit"><button class="btn btn-outline-secondary dropdown-toggle search-bar" id="dd[a-f0-9]+" type="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" onclick="align_dropdown\('[a-f0-9]+'\)"><\/button><div class="dropdown-menu search-bar p-2" id="dm[a-f0-9]+" aria-labelledby="dd[a-f0-9]+">Search Content<\/div><\/div><\/form>$/);
|
|
461
|
+
});
|
|
462
|
+
(0, globals_1.it)("renders a layout with a container and gradient background", () => {
|
|
463
|
+
const blockDispatch = {};
|
|
464
|
+
const markup = {
|
|
465
|
+
type: "container",
|
|
466
|
+
bgType: "Gradient",
|
|
467
|
+
gradStartColor: "#ff0000",
|
|
468
|
+
gradEndColor: "#0000ff",
|
|
469
|
+
gradDirection: 45,
|
|
470
|
+
contents: { type: "blank", contents: "Gradient Content" },
|
|
471
|
+
};
|
|
472
|
+
const result = (0, layout_1.default)({ blockDispatch, layout: markup });
|
|
473
|
+
(0, globals_1.expect)(result).toBe(`<div style=" background-image: linear-gradient(45deg, #ff0000, #0000ff); ">Gradient Content</div>`);
|
|
474
|
+
});
|
|
475
|
+
(0, globals_1.it)("renders a layout with a container and hover color", () => {
|
|
476
|
+
const blockDispatch = {};
|
|
477
|
+
const markup = {
|
|
478
|
+
type: "container",
|
|
479
|
+
hoverColor: "hover-primary",
|
|
480
|
+
contents: { type: "blank", contents: "Hover Content" },
|
|
481
|
+
};
|
|
482
|
+
const result = (0, layout_1.default)({ blockDispatch, layout: markup });
|
|
483
|
+
(0, globals_1.expect)(result).toContain('class="hover-hover-primary"');
|
|
484
|
+
(0, globals_1.expect)(result).toContain("Hover Content");
|
|
485
|
+
});
|
|
486
|
+
(0, globals_1.it)("renders a layout with a container and transform styles", () => {
|
|
487
|
+
const blockDispatch = {};
|
|
488
|
+
const markup = {
|
|
489
|
+
type: "container",
|
|
490
|
+
transform: { rotate: "45deg", scaleX: "1.5" },
|
|
491
|
+
contents: { type: "blank", contents: "Transformed Content" },
|
|
492
|
+
};
|
|
493
|
+
const result = (0, layout_1.default)({ blockDispatch, layout: markup });
|
|
494
|
+
(0, globals_1.expect)(result).toContain("transform: rotate(45deg) scaleX(1.5)");
|
|
495
|
+
(0, globals_1.expect)(result).toContain("Transformed Content");
|
|
496
|
+
});
|
|
497
|
+
});
|
|
498
|
+
// describe("makeSegments", () => {
|
|
499
|
+
// it("creates segments without alerts", () => {
|
|
500
|
+
// const body = "Test body";
|
|
501
|
+
// const result = makeSegments(body, true);
|
|
502
|
+
// expect(result.above).toHaveLength(1);
|
|
503
|
+
// expect(result.above[0].contents).toBe("Test body");
|
|
504
|
+
// });
|
|
505
|
+
// it("handles body with 'above' property", () => {
|
|
506
|
+
// const body = { above: [{ type: "blank", contents: "Above content" }] };
|
|
507
|
+
// const result = makeSegments(body, true);
|
|
508
|
+
// expect(result.above).toHaveLength(1);
|
|
509
|
+
// expect(result.above[0].contents).toBe("Above content");
|
|
510
|
+
// });
|
|
511
|
+
// });
|
|
512
|
+
// describe("applyTextStyle", () => {
|
|
513
|
+
// it("applies h1 text style", () => {
|
|
514
|
+
// const segment = { textStyle: "h1" };
|
|
515
|
+
// const inner = "Header Text";
|
|
516
|
+
// const result = applyTextStyle(segment, inner);
|
|
517
|
+
// expect(result).toBe("<h1>Header Text</h1>");
|
|
518
|
+
// });
|
|
519
|
+
// it("applies multiple text styles", () => {
|
|
520
|
+
// const segment = { textStyle: ["fw-bold", "small"] };
|
|
521
|
+
// const inner = "Styled Text";
|
|
522
|
+
// const result = applyTextStyle(segment, inner);
|
|
523
|
+
// expect(result).toBe('<span class="fw-bold small">Styled Text</span>');
|
|
524
|
+
// });
|
|
525
|
+
// it("applies custom class and inline styles", () => {
|
|
526
|
+
// const segment = {
|
|
527
|
+
// textStyle: "h2",
|
|
528
|
+
// customClass: "custom-class",
|
|
529
|
+
// style: { color: "red" },
|
|
530
|
+
// };
|
|
531
|
+
// const inner = "Custom Styled Text";
|
|
532
|
+
// const result = applyTextStyle(segment, inner);
|
|
533
|
+
// expect(result).toBe(
|
|
534
|
+
// '<h2 style="color:red" class="custom-class">Custom Styled Text</h2>'
|
|
535
|
+
// );
|
|
536
|
+
// });
|
|
537
|
+
// it("applies custom class and inline styles", () => {
|
|
538
|
+
// const segment = {
|
|
539
|
+
// textStyle: "h2",
|
|
540
|
+
// customClass: "custom-class",
|
|
541
|
+
// style: { color: "red" },
|
|
542
|
+
// };
|
|
543
|
+
// const inner = "Custom Styled Text";
|
|
544
|
+
// const result = applyTextStyle(segment, inner);
|
|
545
|
+
// expect(result).toMatch(
|
|
546
|
+
// /^<h2 style="color:red;?" class="custom-class">Custom Styled Text<\/h2>$/
|
|
547
|
+
// );
|
|
548
|
+
// });
|
|
549
|
+
// });
|
|
550
|
+
(0, globals_1.describe)("MJML layout", () => {
|
|
551
|
+
const blockDispatch = {};
|
|
552
|
+
(0, globals_1.it)("renders empty layout", () => {
|
|
553
|
+
const result = (0, mjml_layout_1.renderMJML)({ blockDispatch, layout: {}, req: {} });
|
|
554
|
+
(0, globals_1.expect)(result.markup).toBe(`<mj-section><mj-raw><div style="text-align: left !important; font-size: 16px;"></div></mj-raw></mj-section>`);
|
|
555
|
+
(0, globals_1.expect)(result.backgroundColor).toBe(undefined);
|
|
556
|
+
});
|
|
557
|
+
(0, globals_1.it)("renders text layout", () => {
|
|
558
|
+
const layout = { type: "blank", contents: "Hello world" };
|
|
559
|
+
const result = (0, mjml_layout_1.renderMJML)({ blockDispatch, layout, req: {} });
|
|
560
|
+
(0, globals_1.expect)(result.markup).toBe(`<mj-section><mj-raw><div style="text-align: left !important; font-size: 16px;">Hello world</div></mj-raw></mj-section>`);
|
|
561
|
+
(0, globals_1.expect)(result.backgroundColor).toBe(undefined);
|
|
562
|
+
});
|
|
563
|
+
(0, globals_1.it)("renders text header", () => {
|
|
564
|
+
const layout = { type: "blank", contents: "Hello world", textStyle: "h1" };
|
|
565
|
+
const result = (0, mjml_layout_1.renderMJML)({ blockDispatch, layout, req: {} });
|
|
566
|
+
(0, globals_1.expect)(result.markup).toBe(`<mj-section><mj-raw><div style="text-align: left !important; font-size: 16px;"><div style="font-size:2em;margin-top:0.67em;margin-bottom:0.67em;margin-left:0;margin-right:0;font-weight:bold">Hello world</div></div></mj-raw></mj-section>`);
|
|
567
|
+
(0, globals_1.expect)(result.backgroundColor).toBe(undefined);
|
|
568
|
+
});
|
|
569
|
+
});
|
|
570
|
+
// describe("textStyleToArray", () => {
|
|
571
|
+
// it("returns an empty array for undefined input", () => {
|
|
572
|
+
// expect(textStyleToArray(undefined)).toEqual([]);
|
|
573
|
+
// });
|
|
574
|
+
// it("returns an empty array for null input", () => {
|
|
575
|
+
// expect(textStyleToArray(null)).toEqual([]);
|
|
576
|
+
// });
|
|
577
|
+
// it("returns an array with a single string for string input", () => {
|
|
578
|
+
// expect(textStyleToArray("h1")).toEqual(["h1"]);
|
|
579
|
+
// });
|
|
580
|
+
// it("returns the same array for array input", () => {
|
|
581
|
+
// expect(textStyleToArray(["h1", "fw-bold"])).toEqual(["h1", "fw-bold"]);
|
|
582
|
+
// });
|
|
583
|
+
// });
|
|
584
|
+
//# sourceMappingURL=layout.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.test.js","sourceRoot":"","sources":["../layout.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout_utils.test.d.ts","sourceRoot":"","sources":["../layout_utils.test.ts"],"names":[],"mappings":""}
|