-
Notifications
You must be signed in to change notification settings - Fork 0
/
inline-test.js
85 lines (74 loc) · 2.29 KB
/
inline-test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
require('railway').createServer();
require('railway-bootstrap').init();
var vows = require('vows');
var assert = require('assert');
var InlineForm = require('railway-bootstrap/forms/inline');
function User() {
this.id = 1;
this.username = 'AzureDiamond';
this.email = 'hunter2@example.com';
this.description = 'doesnt look like stars to me';
this.avatar = null;
}
var user = new User();
vows.describe('InlineForm').addBatch({
before: function () {
railway.helpers.controller = {
request: { csrfParam: 'csrf_name', csrfToken: 'csrf_value' }
}
},
'constructor': {
topic: function () {
arguments.callee.buf = [];
return new InlineForm(railway.helpers, user);
},
'includes class in form tag': function (form) {
form.fieldsFor();
var output = form.buf.join('');
var expected = /<form[^>]*class="form-inline"[^>]*>/;
assert.match(output, expected);
}
},
'fieldsFor': {
topic: function () {
arguments.callee.buf = [];
return new InlineForm(railway.helpers, user)
},
'with type input': {
'creates text input with placeholder': function (form) {
form.fieldsFor(function (form) {
var output = form.input('username');
var expected = '<input name="username" id="username" placeholder="Username" value="' + user.username + '" />';
assert.include(output, expected);
});
}
},
'with type textarea': {
'creates textarea with placeholder': function (form) {
form.fieldsFor(function (form) {
var output = form.textarea('description');
var expected = '<textarea name="description" id="description" placeholder="Description">' + user.description + '</textarea>';
assert.include(output, expected);
});
}
},
'with type file': {
'creates file input with placeholder': function (form) {
form.fieldsFor(function (form) {
var output = form.file('avatar');
var expected = '<input name="avatar" id="avatar" type="file" placeholder="Avatar" />';
assert.include(output, expected);
});
}
},
'with type submit': {
'creates submit button': function (form) {
form.fieldsFor(function (form) {
var output = form.submit('Register');
var expected = '<button type="submit" class="btn btn-primary">Register</button>';
assert.include(output, expected);
});
}
}
}
}).export(module);