@saltcorn/markup 1.4.1 → 1.4.3

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.
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=form.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.test.d.ts","sourceRoot":"","sources":["../form.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,387 @@
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
+ // import tags = require("./tags");
41
+ const tags = __importStar(require("./tags"));
42
+ const { a, input, div, ul, text, text_attr } = tags;
43
+ // import index = require("./index");
44
+ const index_1 = __importDefault(require("./index"));
45
+ const { renderForm, mkFormContentNoLayout, mkForm, renderFormLayout } = index_1.default;
46
+ const nolines = (s) => s.split("\n").join("");
47
+ (0, globals_1.describe)("form render", () => {
48
+ (0, globals_1.it)("renders a simple form", () => {
49
+ const form = {
50
+ action: "/",
51
+ fields: [
52
+ {
53
+ name: "name",
54
+ label: "Name",
55
+ input_type: "text",
56
+ form_name: "name",
57
+ required: false,
58
+ attributes: {},
59
+ is_fkey: false,
60
+ },
61
+ ],
62
+ errors: {},
63
+ values: {},
64
+ viewname: "testform",
65
+ formStyle: "",
66
+ methodGET: false,
67
+ xhrSubmit: false,
68
+ req: {},
69
+ };
70
+ const want = `<form data-viewname="testform" action="/" class="form-namespace " method="post">
71
+ <input type="hidden" name="_csrf" value=""><div class="form-group">
72
+ <div><label for="inputname">Name</label></div>
73
+ <div><input type="text" class="form-control " data-fieldname="name" name="name" id="inputname">
74
+ </div></div><div class="form-group row">
75
+ <div class="col-sm-2"></div>
76
+ <div class="col-sm-10">
77
+ <button onClick="sc_form_submit_in_progress()" type="submit" class="btn btn-primary">Save</button>
78
+ </div>
79
+ </div>
80
+ </form>`;
81
+ (0, globals_1.expect)(nolines(renderForm(form, ""))).toBe(nolines(want));
82
+ });
83
+ (0, globals_1.it)("renders a form with layout", () => {
84
+ const form = {
85
+ action: "/",
86
+ fields: [
87
+ {
88
+ name: "name",
89
+ label: "Name",
90
+ input_type: "text",
91
+ form_name: "name",
92
+ required: false,
93
+ attributes: {},
94
+ is_fkey: false,
95
+ },
96
+ ],
97
+ values: {},
98
+ errors: {},
99
+ formStyle: "",
100
+ methodGET: false,
101
+ xhrSubmit: false,
102
+ req: {},
103
+ viewname: "testform",
104
+ layout: {
105
+ above: [
106
+ {
107
+ type: "field",
108
+ block: false,
109
+ fieldview: "edit",
110
+ textStyle: "h2",
111
+ field_name: "name",
112
+ },
113
+ { type: "line_break" },
114
+ ],
115
+ },
116
+ };
117
+ const want = `<form data-viewname="testform" action="/" class="form-namespace " method="post">
118
+ <input type="hidden" name="_csrf" value="">
119
+ <h2>
120
+ <input type="text" class="form-control " data-fieldname="name" name="name" id="inputname">
121
+ </h2><br /></form>`;
122
+ (0, globals_1.expect)(nolines(renderForm(form, ""))).toBe(nolines(want));
123
+ });
124
+ (0, globals_1.it)("renders a simple form with errors", () => {
125
+ const form = {
126
+ action: "/",
127
+ errors: { name: "Not a foo" },
128
+ values: { name: "Bar" },
129
+ fields: [
130
+ {
131
+ name: "name",
132
+ label: "Name",
133
+ input_type: "text",
134
+ form_name: "name",
135
+ required: false,
136
+ attributes: {},
137
+ is_fkey: false,
138
+ },
139
+ ],
140
+ formStyle: "",
141
+ methodGET: false,
142
+ xhrSubmit: false,
143
+ viewname: "testform",
144
+ req: {},
145
+ };
146
+ const want = `<form data-viewname="testform" action="/" class="form-namespace " method="post">
147
+ <input type="hidden" name="_csrf" value=""><div class="form-group">
148
+ <div><label for="inputname">Name</label></div>
149
+ <div><input type="text" class="form-control is-invalid " data-fieldname="name" name="name" id="inputname" value="Bar"><div>Not a foo</div>
150
+ </div></div><div class="form-group row">
151
+ <div class="col-sm-2"></div>
152
+ <div class="col-sm-10">
153
+ <button onClick="sc_form_submit_in_progress()" type="submit" class="btn btn-primary">Save</button>
154
+ </div>
155
+ </div>
156
+ </form>`;
157
+ (0, globals_1.expect)(nolines(renderForm(form, ""))).toBe(nolines(want));
158
+ });
159
+ (0, globals_1.it)("renders a form with showif", () => {
160
+ const form = {
161
+ action: "/",
162
+ fields: [
163
+ {
164
+ name: "category",
165
+ label: "Category",
166
+ input_type: "select",
167
+ options: ["Cat", "Dog"],
168
+ attributes: {},
169
+ is_fkey: false,
170
+ },
171
+ {
172
+ name: "name",
173
+ label: "Name",
174
+ input_type: "text",
175
+ form_name: "name",
176
+ required: false,
177
+ attributes: {},
178
+ is_fkey: false,
179
+ showIf: { category: "Dog" },
180
+ },
181
+ ],
182
+ errors: {},
183
+ values: {},
184
+ viewname: "testform",
185
+ formStyle: "",
186
+ methodGET: false,
187
+ xhrSubmit: false,
188
+ req: {},
189
+ };
190
+ const want = `<form data-viewname="testform" action="/" class="form-namespace " method="post">
191
+ <input type="hidden" name="_csrf" value=""><div class="form-group">
192
+ <div><label for="inputundefined">Category</label></div>
193
+ <div><select class="form-control form-select " data-fieldname="undefined" name="undefined" id="inputundefined"><option value="Cat">Cat</option><option value="Dog">Dog</option></select></div></div><div class="form-group" style="display: none;" data-show-if="e.data(%22data-closest-form-ns%22).find('%5Bdata-fieldname%3Dcategory%5D%3Anot(%3Adisabled)').val()%3D%3D%3D'Dog'">
194
+ <div><label for="inputname">Name</label></div>
195
+ <div><input type="text" class="form-control " data-fieldname="name" name="name" id="inputname">
196
+ </div></div><div class="form-group row">
197
+ <div class="col-sm-2"></div>
198
+ <div class="col-sm-10">
199
+ <button onClick="sc_form_submit_in_progress()" type="submit" class="btn btn-primary">Save</button>
200
+ </div>
201
+ </div>
202
+ </form>`;
203
+ (0, globals_1.expect)(nolines(renderForm(form, ""))).toBe(nolines(want));
204
+ });
205
+ });
206
+ (0, globals_1.describe)("mkFormContentNoLayout", () => {
207
+ (0, globals_1.it)("renders form fields without layout", () => {
208
+ const form = {
209
+ action: "/submit",
210
+ fields: [
211
+ {
212
+ name: "username",
213
+ label: "Username",
214
+ input_type: "text",
215
+ form_name: "username",
216
+ required: true,
217
+ attributes: {},
218
+ is_fkey: false,
219
+ },
220
+ {
221
+ name: "password",
222
+ label: "Password",
223
+ input_type: "password",
224
+ form_name: "password",
225
+ required: true,
226
+ attributes: {},
227
+ is_fkey: false,
228
+ },
229
+ ],
230
+ errors: {},
231
+ values: {},
232
+ formStyle: "vert",
233
+ methodGET: false,
234
+ xhrSubmit: false,
235
+ req: {},
236
+ };
237
+ const result = mkFormContentNoLayout(form);
238
+ (0, globals_1.expect)(result).toContain('<label for="inputusername">Username</label>');
239
+ (0, globals_1.expect)(result).toContain('<input type="text" class="form-control');
240
+ (0, globals_1.expect)(result).toContain('<label for="inputpassword">Password</label>');
241
+ (0, globals_1.expect)(result).toContain('<input type="password" class="form-control');
242
+ });
243
+ });
244
+ (0, globals_1.describe)("mkForm", () => {
245
+ (0, globals_1.it)("renders a complete form with fields and submit button", () => {
246
+ const form = {
247
+ action: "/submit",
248
+ fields: [
249
+ {
250
+ name: "email",
251
+ label: "Email",
252
+ input_type: "text",
253
+ form_name: "email",
254
+ required: true,
255
+ attributes: {},
256
+ is_fkey: false,
257
+ },
258
+ ],
259
+ errors: {},
260
+ values: {},
261
+ formStyle: "vert",
262
+ methodGET: false,
263
+ xhrSubmit: false,
264
+ req: {},
265
+ submitLabel: "Submit",
266
+ viewname: "test-form",
267
+ };
268
+ const csrfToken = "test-csrf-token";
269
+ const result = mkForm(form, csrfToken);
270
+ (0, globals_1.expect)(result).toContain('action="/submit"');
271
+ (0, globals_1.expect)(result).toContain('method="post"');
272
+ (0, globals_1.expect)(result).toContain('<input type="hidden" name="_csrf" value="test-csrf-token">');
273
+ (0, globals_1.expect)(result).toContain('<label for="inputemail">Email</label>');
274
+ (0, globals_1.expect)(result).toContain('type="text"');
275
+ (0, globals_1.expect)(result).toContain('class="form-control');
276
+ (0, globals_1.expect)(result).toContain('<button onClick="sc_form_submit_in_progress()" type="submit" class="btn btn-primary">Submit</button>');
277
+ });
278
+ (0, globals_1.it)("renders a form with errors", () => {
279
+ const form = {
280
+ action: "/submit",
281
+ fields: [
282
+ {
283
+ name: "username",
284
+ label: "Username",
285
+ input_type: "text",
286
+ form_name: "username",
287
+ required: true,
288
+ attributes: {},
289
+ is_fkey: false,
290
+ },
291
+ ],
292
+ errors: { username: "Username is required" },
293
+ values: {},
294
+ formStyle: "vert",
295
+ methodGET: false,
296
+ xhrSubmit: false,
297
+ req: {},
298
+ viewname: "test-form",
299
+ };
300
+ const csrfToken = "test-csrf-token";
301
+ const result = mkForm(form, csrfToken, form.errors);
302
+ (0, globals_1.expect)(result).toContain('class="form-control is-invalid');
303
+ (0, globals_1.expect)(result).toContain("Username is required</div>");
304
+ (0, globals_1.expect)(result).toMatch(/<div class="form-group".*?<div>Username is required<\/div>/s);
305
+ });
306
+ });
307
+ (0, globals_1.describe)("renderFormLayout", () => {
308
+ (0, globals_1.it)("renders a form layout with fields", () => {
309
+ const form = {
310
+ action: "/submit",
311
+ fields: [
312
+ {
313
+ name: "first_name",
314
+ label: "First Name",
315
+ input_type: "text",
316
+ form_name: "first_name",
317
+ required: true,
318
+ attributes: {},
319
+ is_fkey: false,
320
+ },
321
+ {
322
+ name: "last_name",
323
+ label: "Last Name",
324
+ input_type: "text",
325
+ form_name: "last_name",
326
+ required: true,
327
+ attributes: {},
328
+ is_fkey: false,
329
+ },
330
+ ],
331
+ layout: {
332
+ above: [
333
+ { type: "field", field_name: "first_name" },
334
+ { type: "field", field_name: "last_name" },
335
+ ],
336
+ },
337
+ errors: {},
338
+ values: {},
339
+ formStyle: "vert",
340
+ methodGET: false,
341
+ xhrSubmit: false,
342
+ req: {},
343
+ };
344
+ const result = renderFormLayout(form);
345
+ (0, globals_1.expect)(result).toBe(`<input type=\"text\" class=\"form-control \" data-fieldname=\"first_name\" name=\"first_name\" id=\"inputfirst_name\"><input type=\"text\" class=\"form-control \" data-fieldname=\"last_name\" name=\"last_name\" id=\"inputlast_name\">`);
346
+ });
347
+ (0, globals_1.it)("renders a form layout with fields", () => {
348
+ const form = {
349
+ action: "/submit",
350
+ fields: [
351
+ {
352
+ name: "first_name",
353
+ label: "First Name",
354
+ input_type: "text",
355
+ form_name: "first_name",
356
+ required: true,
357
+ attributes: {},
358
+ is_fkey: false,
359
+ },
360
+ {
361
+ name: "last_name",
362
+ label: "Last Name",
363
+ input_type: "text",
364
+ form_name: "last_name",
365
+ required: true,
366
+ attributes: {},
367
+ is_fkey: false,
368
+ },
369
+ ],
370
+ layout: {
371
+ above: [
372
+ { type: "field", field_name: "first_name" },
373
+ { type: "field", field_name: "last_name" },
374
+ ],
375
+ },
376
+ errors: {},
377
+ values: {},
378
+ formStyle: "vert",
379
+ methodGET: false,
380
+ xhrSubmit: false,
381
+ req: {},
382
+ };
383
+ const result = renderFormLayout(form);
384
+ (0, globals_1.expect)(result).toBe(`<input type=\"text\" class=\"form-control \" data-fieldname=\"first_name\" name=\"first_name\" id=\"inputfirst_name\"><input type=\"text\" class=\"form-control \" data-fieldname=\"last_name\" name=\"last_name\" id=\"inputlast_name\">`);
385
+ });
386
+ });
387
+ //# sourceMappingURL=form.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.test.js","sourceRoot":"","sources":["../form.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=helpers.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.test.d.ts","sourceRoot":"","sources":["../helpers.test.ts"],"names":[],"mappings":""}