1 | var assert = require("assert"),
|
2 | form = require("../index"),
|
3 | validate = form.validate,
|
4 | utils = require('../lib/utils');
|
5 |
|
6 | module.exports = {
|
7 | 'form : isValid': function() {
|
8 |
|
9 | var request = { body: { field: "fail" }};
|
10 | form(validate("field").isEmail())(request, {});
|
11 | assert.strictEqual(request.form.isValid, false);
|
12 |
|
13 |
|
14 | var request = { body: { field: "me@dandean.com" }};
|
15 | form(validate("field").isEmail())(request, {});
|
16 | assert.strictEqual(request.form.isValid, true);
|
17 |
|
18 |
|
19 | request.form.isValid = false;
|
20 | assert.strictEqual(request.form.isValid, true);
|
21 | },
|
22 |
|
23 | 'form : getErrors': function() {
|
24 | var request = {
|
25 | body: {
|
26 | field0: "win",
|
27 | field1: "fail",
|
28 | field2: "fail",
|
29 | field3: "fail"
|
30 | }
|
31 | };
|
32 |
|
33 | form(
|
34 | validate("field0").equals("win"),
|
35 | validate("field1").isEmail(),
|
36 | validate("field2").isEmail().isUrl(),
|
37 | validate("field3").isEmail().isUrl().isIP()
|
38 | )(request, {});
|
39 |
|
40 | assert.equal(request.form.isValid, false);
|
41 | assert.equal(request.form.errors.length, 6);
|
42 |
|
43 | assert.equal(request.form.getErrors("field0").length, 0);
|
44 | assert.equal(request.form.getErrors("field1").length, 1);
|
45 | assert.equal(request.form.getErrors("field2").length, 2);
|
46 | assert.equal(request.form.getErrors("field3").length, 3);
|
47 | },
|
48 |
|
49 | 'form : configure : dataSources': function() {
|
50 | form.configure({ dataSources: 'other' });
|
51 |
|
52 | var request = { other: { field: "me@dandean.com" }};
|
53 | form(validate("field").isEmail())(request, {});
|
54 | assert.strictEqual(request.form.isValid, true);
|
55 | assert.equal(request.form.field, "me@dandean.com");
|
56 |
|
57 | form.configure({ dataSources: ['body', "query", "params"] });
|
58 | },
|
59 |
|
60 | 'form : configure : autoTrim': function() {
|
61 |
|
62 | var request = {
|
63 | body: {
|
64 | username: 'myuser1 '
|
65 | }
|
66 | };
|
67 |
|
68 | var request2 = utils.clone(request);
|
69 |
|
70 |
|
71 | var regex = /^[0-9A-Z]+$/i
|
72 |
|
73 |
|
74 | assert.strictEqual(form._options.autoTrim, false);
|
75 | form(validate('username').is(regex))(request, {});
|
76 | assert.strictEqual(request.form.isValid, false);
|
77 |
|
78 |
|
79 | form.configure({ autoTrim: true });
|
80 | assert.strictEqual(form._options.autoTrim, true);
|
81 | form(validate('username').is(regex))(request2, {});
|
82 | assert.strictEqual(request2.form.isValid, true);
|
83 | assert.strictEqual(request2.form.username, 'myuser1');
|
84 |
|
85 |
|
86 | form.configure({ autoTrim: false });
|
87 | assert.strictEqual(form._options.autoTrim, false);
|
88 | }
|
89 |
|
90 | };
|