@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.
@@ -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,341 @@
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
+ });
160
+ (0, globals_1.describe)("mkFormContentNoLayout", () => {
161
+ (0, globals_1.it)("renders form fields without layout", () => {
162
+ const form = {
163
+ action: "/submit",
164
+ fields: [
165
+ {
166
+ name: "username",
167
+ label: "Username",
168
+ input_type: "text",
169
+ form_name: "username",
170
+ required: true,
171
+ attributes: {},
172
+ is_fkey: false,
173
+ },
174
+ {
175
+ name: "password",
176
+ label: "Password",
177
+ input_type: "password",
178
+ form_name: "password",
179
+ required: true,
180
+ attributes: {},
181
+ is_fkey: false,
182
+ },
183
+ ],
184
+ errors: {},
185
+ values: {},
186
+ formStyle: "vert",
187
+ methodGET: false,
188
+ xhrSubmit: false,
189
+ req: {},
190
+ };
191
+ const result = mkFormContentNoLayout(form);
192
+ (0, globals_1.expect)(result).toContain('<label for="inputusername">Username</label>');
193
+ (0, globals_1.expect)(result).toContain('<input type="text" class="form-control');
194
+ (0, globals_1.expect)(result).toContain('<label for="inputpassword">Password</label>');
195
+ (0, globals_1.expect)(result).toContain('<input type="password" class="form-control');
196
+ });
197
+ });
198
+ (0, globals_1.describe)("mkForm", () => {
199
+ (0, globals_1.it)("renders a complete form with fields and submit button", () => {
200
+ const form = {
201
+ action: "/submit",
202
+ fields: [
203
+ {
204
+ name: "email",
205
+ label: "Email",
206
+ input_type: "text",
207
+ form_name: "email",
208
+ required: true,
209
+ attributes: {},
210
+ is_fkey: false,
211
+ },
212
+ ],
213
+ errors: {},
214
+ values: {},
215
+ formStyle: "vert",
216
+ methodGET: false,
217
+ xhrSubmit: false,
218
+ req: {},
219
+ submitLabel: "Submit",
220
+ viewname: "test-form",
221
+ };
222
+ const csrfToken = "test-csrf-token";
223
+ const result = mkForm(form, csrfToken);
224
+ (0, globals_1.expect)(result).toContain('action="/submit"');
225
+ (0, globals_1.expect)(result).toContain('method="post"');
226
+ (0, globals_1.expect)(result).toContain('<input type="hidden" name="_csrf" value="test-csrf-token">');
227
+ (0, globals_1.expect)(result).toContain('<label for="inputemail">Email</label>');
228
+ (0, globals_1.expect)(result).toContain('type="text"');
229
+ (0, globals_1.expect)(result).toContain('class="form-control');
230
+ (0, globals_1.expect)(result).toContain('<button onClick="sc_form_submit_in_progress()" type="submit" class="btn btn-primary">Submit</button>');
231
+ });
232
+ (0, globals_1.it)("renders a form with errors", () => {
233
+ const form = {
234
+ action: "/submit",
235
+ fields: [
236
+ {
237
+ name: "username",
238
+ label: "Username",
239
+ input_type: "text",
240
+ form_name: "username",
241
+ required: true,
242
+ attributes: {},
243
+ is_fkey: false,
244
+ },
245
+ ],
246
+ errors: { username: "Username is required" },
247
+ values: {},
248
+ formStyle: "vert",
249
+ methodGET: false,
250
+ xhrSubmit: false,
251
+ req: {},
252
+ viewname: "test-form",
253
+ };
254
+ const csrfToken = "test-csrf-token";
255
+ const result = mkForm(form, csrfToken, form.errors);
256
+ (0, globals_1.expect)(result).toContain('class="form-control is-invalid');
257
+ (0, globals_1.expect)(result).toContain("Username is required</div>");
258
+ (0, globals_1.expect)(result).toMatch(/<div class="form-group".*?<div>Username is required<\/div>/s);
259
+ });
260
+ });
261
+ (0, globals_1.describe)("renderFormLayout", () => {
262
+ (0, globals_1.it)("renders a form layout with fields", () => {
263
+ const form = {
264
+ action: "/submit",
265
+ fields: [
266
+ {
267
+ name: "first_name",
268
+ label: "First Name",
269
+ input_type: "text",
270
+ form_name: "first_name",
271
+ required: true,
272
+ attributes: {},
273
+ is_fkey: false,
274
+ },
275
+ {
276
+ name: "last_name",
277
+ label: "Last Name",
278
+ input_type: "text",
279
+ form_name: "last_name",
280
+ required: true,
281
+ attributes: {},
282
+ is_fkey: false,
283
+ },
284
+ ],
285
+ layout: {
286
+ above: [
287
+ { type: "field", field_name: "first_name" },
288
+ { type: "field", field_name: "last_name" },
289
+ ],
290
+ },
291
+ errors: {},
292
+ values: {},
293
+ formStyle: "vert",
294
+ methodGET: false,
295
+ xhrSubmit: false,
296
+ req: {},
297
+ };
298
+ const result = renderFormLayout(form);
299
+ (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\">`);
300
+ });
301
+ (0, globals_1.it)("renders a form layout with fields", () => {
302
+ const form = {
303
+ action: "/submit",
304
+ fields: [
305
+ {
306
+ name: "first_name",
307
+ label: "First Name",
308
+ input_type: "text",
309
+ form_name: "first_name",
310
+ required: true,
311
+ attributes: {},
312
+ is_fkey: false,
313
+ },
314
+ {
315
+ name: "last_name",
316
+ label: "Last Name",
317
+ input_type: "text",
318
+ form_name: "last_name",
319
+ required: true,
320
+ attributes: {},
321
+ is_fkey: false,
322
+ },
323
+ ],
324
+ layout: {
325
+ above: [
326
+ { type: "field", field_name: "first_name" },
327
+ { type: "field", field_name: "last_name" },
328
+ ],
329
+ },
330
+ errors: {},
331
+ values: {},
332
+ formStyle: "vert",
333
+ methodGET: false,
334
+ xhrSubmit: false,
335
+ req: {},
336
+ };
337
+ const result = renderFormLayout(form);
338
+ (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\">`);
339
+ });
340
+ });
341
+ //# 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":""}