vulcan 0.3.0 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (211) hide show
  1. data/bin/vulcan +3 -1
  2. data/lib/vulcan/cli.rb +22 -3
  3. data/lib/vulcan/version.rb +1 -1
  4. data/server/bin/make +1 -3
  5. data/server/lib/spawner.js +9 -4
  6. data/server/node_modules/connect-form/node_modules/formidable/Readme.md +13 -2
  7. data/server/node_modules/connect-form/node_modules/formidable/lib/incoming_form.js +19 -7
  8. data/server/node_modules/connect-form/node_modules/formidable/lib/multipart_parser.js +12 -1
  9. data/server/node_modules/connect-form/node_modules/formidable/package.json +1 -1
  10. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/file/plain.txt +1 -0
  11. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/no-filename/generic.http +13 -0
  12. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-chrome-13.http +0 -10
  13. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-chrome-12.http +0 -9
  14. data/server/node_modules/connect-form/node_modules/formidable/test/fixture/js/no-filename.js +3 -0
  15. data/server/node_modules/connect-form/node_modules/formidable/test/legacy/simple/test-multipart-parser.js +1 -1
  16. data/server/node_modules/cradle/lib/cradle.js +0 -1
  17. data/server/node_modules/cradle/package.json +3 -3
  18. data/server/node_modules/cradle/test/cache-test.js +6 -7
  19. data/server/node_modules/cradle/test/cradle-test.js +4 -5
  20. data/server/node_modules/cradle/test/response-test.js +5 -6
  21. data/server/node_modules/express/History.md +53 -1
  22. data/server/node_modules/express/Makefile +3 -9
  23. data/server/node_modules/express/Readme.md +3 -1
  24. data/server/node_modules/express/bin/express +65 -66
  25. data/server/node_modules/express/lib/express.js +1 -1
  26. data/server/node_modules/express/lib/request.js +23 -9
  27. data/server/node_modules/express/lib/response.js +3 -2
  28. data/server/node_modules/express/lib/utils.js +13 -0
  29. data/server/node_modules/express/lib/view/view.js +2 -1
  30. data/server/node_modules/express/lib/view.js +19 -16
  31. data/server/node_modules/express/node_modules/connect/lib/connect.js +1 -1
  32. data/server/node_modules/express/node_modules/connect/lib/http.js +2 -0
  33. data/server/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js +135 -31
  34. data/server/node_modules/express/node_modules/connect/lib/middleware/limit.js +5 -1
  35. data/server/node_modules/express/node_modules/connect/lib/middleware/session.js +2 -2
  36. data/server/node_modules/express/node_modules/connect/lib/middleware/static.js +26 -21
  37. data/server/node_modules/express/node_modules/connect/lib/middleware/staticCache.js +91 -38
  38. data/server/node_modules/express/node_modules/connect/lib/middleware/vhost.js +1 -1
  39. data/server/node_modules/express/node_modules/connect/lib/utils.js +11 -4
  40. data/server/node_modules/express/node_modules/connect/node_modules/formidable/Makefile +14 -0
  41. data/server/node_modules/express/node_modules/connect/node_modules/formidable/Readme.md +286 -0
  42. data/server/node_modules/express/node_modules/connect/node_modules/formidable/TODO +3 -0
  43. data/server/node_modules/express/node_modules/connect/node_modules/formidable/benchmark/bench-multipart-parser.js +70 -0
  44. data/server/node_modules/express/node_modules/connect/node_modules/formidable/example/post.js +43 -0
  45. data/server/node_modules/express/node_modules/connect/node_modules/formidable/example/upload.js +48 -0
  46. data/server/node_modules/express/node_modules/connect/node_modules/formidable/index.js +1 -0
  47. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/file.js +61 -0
  48. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/incoming_form.js +377 -0
  49. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/index.js +3 -0
  50. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/multipart_parser.js +312 -0
  51. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/querystring_parser.js +25 -0
  52. data/server/node_modules/express/node_modules/connect/node_modules/formidable/lib/util.js +6 -0
  53. data/server/node_modules/express/node_modules/connect/node_modules/formidable/package.json +22 -0
  54. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/common.js +19 -0
  55. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/file/funkyfilename.txt +1 -0
  56. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/file/plain.txt +1 -0
  57. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/no-filename/generic.http +13 -0
  58. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/info.md +3 -0
  59. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-chrome-13.http +26 -0
  60. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-firefox-3.6.http +24 -0
  61. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/osx-safari-5.http +23 -0
  62. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-chrome-12.http +24 -0
  63. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-7.http +22 -0
  64. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-ie-8.http +22 -0
  65. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/http/special-chars-in-filename/xp-safari-5.http +22 -0
  66. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/js/no-filename.js +3 -0
  67. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/js/special-chars-in-filename.js +21 -0
  68. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/multi_video.upload +0 -0
  69. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/fixture/multipart.js +72 -0
  70. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/integration/test-fixtures.js +89 -0
  71. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/common.js +24 -0
  72. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/integration/test-multipart-parser.js +80 -0
  73. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-file.js +104 -0
  74. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-incoming-form.js +715 -0
  75. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-multipart-parser.js +50 -0
  76. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/simple/test-querystring-parser.js +45 -0
  77. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/legacy/system/test-multi-video-upload.js +72 -0
  78. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/run.js +2 -0
  79. data/server/node_modules/express/node_modules/connect/node_modules/formidable/test/unit/test-incoming-form.js +63 -0
  80. data/server/node_modules/express/node_modules/connect/node_modules/formidable/tool/record.js +47 -0
  81. data/server/node_modules/express/node_modules/connect/package.json +7 -6
  82. data/server/node_modules/express/node_modules/connect/test.js +44 -31
  83. data/server/node_modules/express/node_modules/mime/mime.js +3 -3
  84. data/server/node_modules/express/node_modules/mime/package.json +21 -10
  85. data/server/node_modules/express/node_modules/mime/test.js +2 -3
  86. data/server/node_modules/express/node_modules/mime/{mime.types → types/mime.types} +0 -0
  87. data/server/node_modules/express/node_modules/mime/{node.types → types/node.types} +17 -0
  88. data/server/node_modules/express/node_modules/mkdirp/LICENSE +21 -0
  89. data/server/node_modules/express/node_modules/mkdirp/README.markdown +21 -0
  90. data/server/node_modules/express/node_modules/mkdirp/examples/pow.js +6 -0
  91. data/server/node_modules/express/node_modules/mkdirp/examples/pow.js.orig +6 -0
  92. data/server/node_modules/express/node_modules/mkdirp/examples/pow.js.rej +19 -0
  93. data/server/node_modules/express/node_modules/mkdirp/index.js +20 -0
  94. data/server/node_modules/express/node_modules/mkdirp/package.json +23 -0
  95. data/server/node_modules/express/node_modules/mkdirp/test/mkdirp.js +28 -0
  96. data/server/node_modules/express/node_modules/mkdirp/test/race.js +41 -0
  97. data/server/node_modules/express/node_modules/mkdirp/test/rel.js +32 -0
  98. data/server/node_modules/express/node_modules/qs/History.md +11 -0
  99. data/server/node_modules/express/node_modules/qs/Makefile +1 -3
  100. data/server/node_modules/express/node_modules/qs/Readme.md +2 -4
  101. data/server/node_modules/express/node_modules/qs/lib/querystring.js +100 -74
  102. data/server/node_modules/express/node_modules/qs/package.json +9 -2
  103. data/server/node_modules/express/node_modules/qs/test/mocha.opts +2 -0
  104. data/server/node_modules/express/node_modules/qs/test/{parse.test.js → parse.js} +1 -2
  105. data/server/node_modules/express/node_modules/qs/test/{stringify.test.js → stringify.js} +0 -0
  106. data/server/node_modules/express/package.json +9 -8
  107. data/server/node_modules/express/testing/foo/app.js +35 -0
  108. data/server/node_modules/express/testing/foo/package.json +9 -0
  109. data/server/node_modules/express/testing/foo/public/stylesheets/style.css +8 -0
  110. data/server/node_modules/express/testing/foo/routes/index.js +10 -0
  111. data/server/node_modules/express/testing/foo/views/index.jade +2 -0
  112. data/server/node_modules/express/testing/foo/views/layout.jade +6 -0
  113. data/server/node_modules/express/testing/index.js +43 -0
  114. data/server/node_modules/express/testing/public/test.txt +2971 -0
  115. data/server/node_modules/express/testing/views/page.html +1 -0
  116. data/server/node_modules/express/testing/views/page.jade +3 -0
  117. data/server/node_modules/express/testing/views/test.md +1 -0
  118. data/server/node_modules/express/testing/views/user/index.jade +1 -0
  119. data/server/node_modules/express/testing/views/user/list.jade +1 -0
  120. data/server/node_modules/node-uuid/README.md +166 -67
  121. data/server/node_modules/node-uuid/benchmark/README.md +53 -0
  122. data/server/node_modules/node-uuid/benchmark/bench.gnu +174 -0
  123. data/server/node_modules/node-uuid/benchmark/bench.sh +34 -0
  124. data/server/node_modules/node-uuid/{test → benchmark}/benchmark-native.c +0 -0
  125. data/server/node_modules/node-uuid/benchmark/benchmark.js +84 -0
  126. data/server/node_modules/node-uuid/package.json +5 -3
  127. data/server/node_modules/node-uuid/test/benchmark-native +0 -0
  128. data/server/node_modules/node-uuid/test/compare_v1.js +63 -0
  129. data/server/node_modules/node-uuid/test/test.html +3 -0
  130. data/server/node_modules/node-uuid/test/test.js +214 -57
  131. data/server/node_modules/node-uuid/uuid.js +225 -56
  132. data/server/node_modules/restler/README.md +20 -7
  133. data/server/node_modules/restler/bin/restler +1 -1
  134. data/server/node_modules/restler/lib/multipartform.js +9 -8
  135. data/server/node_modules/restler/lib/restler.js +64 -22
  136. data/server/node_modules/restler/package.json +2 -2
  137. data/server/node_modules/restler/test/restler.js +22 -2
  138. data/server/node_modules/restler/test/test_helper.js +20 -1
  139. data/server/package.json +1 -2
  140. data/server/web.js +30 -7
  141. metadata +90 -86
  142. data/server/node_modules/cradle/node_modules/vows/LICENSE +0 -20
  143. data/server/node_modules/cradle/node_modules/vows/Makefile +0 -7
  144. data/server/node_modules/cradle/node_modules/vows/README.md +0 -39
  145. data/server/node_modules/cradle/node_modules/vows/bin/vows +0 -515
  146. data/server/node_modules/cradle/node_modules/vows/lib/assert/error.js +0 -27
  147. data/server/node_modules/cradle/node_modules/vows/lib/assert/macros.js +0 -215
  148. data/server/node_modules/cradle/node_modules/vows/lib/assert/utils.js +0 -77
  149. data/server/node_modules/cradle/node_modules/vows/lib/vows/console.js +0 -131
  150. data/server/node_modules/cradle/node_modules/vows/lib/vows/context.js +0 -55
  151. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/file.js +0 -29
  152. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/fragments/coverage-foot.html +0 -2
  153. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/fragments/coverage-head.html +0 -61
  154. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/report-html.js +0 -54
  155. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/report-json.js +0 -54
  156. data/server/node_modules/cradle/node_modules/vows/lib/vows/coverage/report-plain.js +0 -38
  157. data/server/node_modules/cradle/node_modules/vows/lib/vows/extras.js +0 -28
  158. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/dot-matrix.js +0 -67
  159. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/json.js +0 -16
  160. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/silent.js +0 -8
  161. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/spec.js +0 -44
  162. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/watch.js +0 -39
  163. data/server/node_modules/cradle/node_modules/vows/lib/vows/reporters/xunit.js +0 -90
  164. data/server/node_modules/cradle/node_modules/vows/lib/vows/suite.js +0 -319
  165. data/server/node_modules/cradle/node_modules/vows/lib/vows.js +0 -193
  166. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/LICENSE +0 -20
  167. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/Makefile +0 -4
  168. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/README.md +0 -72
  169. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/lib/eyes.js +0 -233
  170. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/package.json +0 -14
  171. data/server/node_modules/cradle/node_modules/vows/node_modules/eyes/test/eyes-test.js +0 -55
  172. data/server/node_modules/cradle/node_modules/vows/package.json +0 -14
  173. data/server/node_modules/cradle/node_modules/vows/test/assert-test.js +0 -135
  174. data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/failing.js +0 -18
  175. data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/log.js +0 -18
  176. data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/passing.js +0 -17
  177. data/server/node_modules/cradle/node_modules/vows/test/fixtures/isolate/stderr.js +0 -18
  178. data/server/node_modules/cradle/node_modules/vows/test/isolate-test.js +0 -140
  179. data/server/node_modules/cradle/node_modules/vows/test/testInherit.js +0 -133
  180. data/server/node_modules/cradle/node_modules/vows/test/vows-error-test.js +0 -51
  181. data/server/node_modules/cradle/node_modules/vows/test/vows-test.js +0 -374
  182. data/server/node_modules/express/node_modules/mime/index.js +0 -1
  183. data/server/node_modules/express/node_modules/qs/support/expresso/History.md +0 -128
  184. data/server/node_modules/express/node_modules/qs/support/expresso/Makefile +0 -53
  185. data/server/node_modules/express/node_modules/qs/support/expresso/Readme.md +0 -61
  186. data/server/node_modules/express/node_modules/qs/support/expresso/bin/expresso +0 -856
  187. data/server/node_modules/express/node_modules/qs/support/expresso/docs/api.html +0 -1080
  188. data/server/node_modules/express/node_modules/qs/support/expresso/docs/index.html +0 -377
  189. data/server/node_modules/express/node_modules/qs/support/expresso/docs/index.md +0 -290
  190. data/server/node_modules/express/node_modules/qs/support/expresso/docs/layout/foot.html +0 -3
  191. data/server/node_modules/express/node_modules/qs/support/expresso/docs/layout/head.html +0 -42
  192. data/server/node_modules/express/node_modules/qs/support/expresso/lib/bar.js +0 -4
  193. data/server/node_modules/express/node_modules/qs/support/expresso/lib/foo.js +0 -16
  194. data/server/node_modules/express/node_modules/qs/support/expresso/package.json +0 -12
  195. data/server/node_modules/express/node_modules/qs/support/expresso/test/assert.test.js +0 -91
  196. data/server/node_modules/express/node_modules/qs/support/expresso/test/async.test.js +0 -12
  197. data/server/node_modules/express/node_modules/qs/support/expresso/test/bar.test.js +0 -13
  198. data/server/node_modules/express/node_modules/qs/support/expresso/test/foo.test.js +0 -14
  199. data/server/node_modules/express/node_modules/qs/support/expresso/test/http.test.js +0 -146
  200. data/server/node_modules/express/node_modules/qs/support/expresso/test/serial/async.test.js +0 -39
  201. data/server/node_modules/express/node_modules/qs/support/expresso/test/serial/http.test.js +0 -48
  202. data/server/node_modules/express/node_modules/qs/support/should/History.md +0 -22
  203. data/server/node_modules/express/node_modules/qs/support/should/Makefile +0 -6
  204. data/server/node_modules/express/node_modules/qs/support/should/Readme.md +0 -248
  205. data/server/node_modules/express/node_modules/qs/support/should/examples/runner.js +0 -53
  206. data/server/node_modules/express/node_modules/qs/support/should/index.js +0 -2
  207. data/server/node_modules/express/node_modules/qs/support/should/lib/eql.js +0 -91
  208. data/server/node_modules/express/node_modules/qs/support/should/lib/should.js +0 -548
  209. data/server/node_modules/express/node_modules/qs/support/should/package.json +0 -8
  210. data/server/node_modules/express/node_modules/qs/support/should/test/should.test.js +0 -358
  211. data/server/node_modules/node-uuid/test/benchmark.js +0 -27
@@ -1,248 +0,0 @@
1
- _should_ is an expressive, test framework agnostic, assertion library for [node](http://nodejs.org).
2
-
3
- _should_ literally extends node's _assert_ module, in fact, it is node's assert module, for example `should.equal(str, 'foo')` will work, just as `assert.equal(str, 'foo')` would, and `should.AssertionError` **is** `asset.AssertionError`, meaning any test framework supporting this constructor will function properly with _should_.
4
-
5
- ## Example
6
-
7
- var user = {
8
- name: 'tj'
9
- , pets: ['tobi', 'loki', 'jane', 'bandit']
10
- };
11
-
12
- user.should.have.property('name', 'tj');
13
- user.should.have.property('pets').with.lengthOf(4)
14
-
15
- ## Installation
16
-
17
- $ npm install should
18
-
19
- ## modifiers
20
-
21
- _should_'s assertion chaining provides an expressive way to build up an assertion, along with dummy getters such as _an_, _have_, and _be_, provided are what I am simply calling **modifiers**, which have a meaning effect on the assertion. An example of this is the _not_ getter, which negates the meaning, aka `user.should.not.have.property('name')`. In the previous example note the use of _have_, as we could omit it and still construct a valid assertion.
22
-
23
- Some modifiers such as _include_ only have an effect with specific assertion methods, for example when asserting a substring like so: `str.should.include.string('test')`, we could omit _include_, but it helps express the meaning, however _keys_ has a strict effect, unless the _include_ modifier is used.
24
-
25
- ## chaining assertions
26
-
27
- Some assertions can be chained, for example if a property is volatile we can first assert property existence:
28
-
29
- user.should.have.property('pets').with.lengthOf(4)
30
-
31
- which is essentially equivalent to below, however the property may not exist:
32
-
33
- user.pets.should.have.lengthOf(4)
34
-
35
- our dummy getters such as _and_ also help express chaining:
36
-
37
- user.should.be.a('object').and.have.property('name', 'tj')
38
-
39
- ## ok
40
-
41
- Assert truthfulness:
42
-
43
- true.should.be.ok
44
- 'yay'.should.be.ok
45
- (1).should.be.ok
46
-
47
- or negated:
48
-
49
- false.should.not.be.ok
50
- ''.should.not.be.ok
51
- (0).should.not.be.ok
52
-
53
- ## true
54
-
55
- Assert === true:
56
-
57
- true.should.be.true
58
- '1'.should.not.be.true
59
-
60
- ## false
61
-
62
- Assert === false:
63
-
64
- false.should.be.false
65
- (0).should.not.be.false
66
-
67
- ## arguments
68
-
69
- Assert `Arguments`:
70
-
71
- var args = (function(){ return arguments; })(1,2,3);
72
- args.should.be.arguments;
73
- [].should.not.be.arguments;
74
-
75
- ## empty
76
-
77
- Asserts that length is 0:
78
-
79
- [].should.be.empty
80
- ''.should.be.empty
81
- ({ length: 0 }).should.be.empty
82
-
83
- ## eql
84
-
85
- equality:
86
-
87
- ({ foo: 'bar' }).should.eql({ foo: 'bar' })
88
- [1,2,3].should.eql([1,2,3])
89
-
90
- ## equal
91
-
92
- strict equality:
93
-
94
- should.strictEqual(undefined, value)
95
- should.strictEqual(false, value)
96
- (4).should.equal(4)
97
- 'test'.should.equal('test')
98
- [1,2,3].should.not.equal([1,2,3])
99
-
100
- ## within
101
-
102
- Assert inclusive numeric range:
103
-
104
- user.age.should.be.within(5, 50)
105
-
106
- ## a
107
-
108
- Assert __typeof__:
109
-
110
- user.should.be.a('object')
111
- 'test'.should.be.a('string')
112
-
113
- ## instanceof
114
-
115
- Assert __instanceof__:
116
-
117
- user.should.be.an.instanceof(User)
118
- [].should.be.an.instanceof(Array)
119
-
120
- ## above
121
-
122
- Assert numeric value above the given value:
123
-
124
- user.age.should.be.above(5)
125
- user.age.should.not.be.above(100)
126
-
127
- ## below
128
-
129
- Assert numeric value below the given value:
130
-
131
- user.age.should.be.below(100)
132
- user.age.should.not.be.below(5)
133
-
134
- ## match
135
-
136
- Assert regexp match:
137
-
138
- username.should.match(/^\w+$/)
139
-
140
- ## length
141
-
142
- Assert _length_ property exists and has a value of the given number:
143
-
144
- user.pets.should.have.length(5)
145
- user.pets.should.have.a.lengthOf(5)
146
-
147
- Aliases: _lengthOf_
148
-
149
- ## string
150
-
151
- Substring assertion:
152
-
153
- 'foobar'.should.include.string('foo')
154
- 'foobar'.should.include.string('bar')
155
- 'foobar'.should.not.include.string('baz')
156
-
157
- ## property
158
-
159
- Assert property exists and has optional value:
160
-
161
- user.should.have.property('name')
162
- user.should.have.property('age', 15)
163
- user.should.not.have.property('rawr')
164
- user.should.not.have.property('age', 0)
165
-
166
- ## ownProperty
167
-
168
- Assert own property (on the immediate object):
169
-
170
- ({ foo: 'bar' }).should.have.ownProperty('foo')
171
-
172
- ## contain
173
-
174
- Assert array value:
175
-
176
- [1,2,3].should.contain(3)
177
- [1,2,3].should.contain(2)
178
- [1,2,3].should.not.contain(4)
179
-
180
- ## keys
181
-
182
- Assert own object keys, which must match _exactly_,
183
- and will fail if you omit a key or two:
184
-
185
- var obj = { foo: 'bar', baz: 'raz' };
186
- obj.should.have.keys('foo', 'bar');
187
- obj.should.have.keys(['foo', 'bar']);
188
-
189
- using the _include_ modifier, we can check inclusion of a key,
190
- but not fail when we omit a few:
191
-
192
- obj.should.include.keys('foo')
193
- obj.should.include.keys('bar')
194
- obj.should.not.include.keys('baz')
195
-
196
- ## respondTo
197
-
198
- Assert that the given property is a function:
199
-
200
- user.should.respondTo('email')
201
-
202
- ## Express example
203
-
204
- For example you can use should with the [Expresso TDD Framework](http://github.com/visionmedia/expresso) by simply including it:
205
-
206
- var lib = require('mylib')
207
- , should = require('should');
208
-
209
- module.exports = {
210
- 'test .version': function(){
211
- lib.version.should.match(/^\d+\.\d+\.\d+$/);
212
- }
213
- };
214
-
215
- ## Running tests
216
-
217
- To run the tests for _should_ simple update your git submodules and run:
218
-
219
- $ make test
220
-
221
- ## OMG IT EXTENDS OBJECT???!?!@
222
-
223
- Yes, yes it does, with a single getter _should_, and no it wont break your code, because it does this **properly** with a non-enumerable property.
224
-
225
- ## License
226
-
227
- (The MIT License)
228
-
229
- Copyright (c) 2010 TJ Holowaychuk <tj@vision-media.ca>
230
-
231
- Permission is hereby granted, free of charge, to any person obtaining
232
- a copy of this software and associated documentation files (the
233
- 'Software'), to deal in the Software without restriction, including
234
- without limitation the rights to use, copy, modify, merge, publish,
235
- distribute, sublicense, and/or sell copies of the Software, and to
236
- permit persons to whom the Software is furnished to do so, subject to
237
- the following conditions:
238
-
239
- The above copyright notice and this permission notice shall be
240
- included in all copies or substantial portions of the Software.
241
-
242
- THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
243
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
244
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
245
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
246
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
247
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
248
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1,53 +0,0 @@
1
-
2
- /**
3
- * Module dependencies.
4
- */
5
-
6
- var should = require('../');
7
-
8
- function test(name, fn){
9
- try {
10
- fn();
11
- } catch (err) {
12
- console.log(' \x1b[31m%s', name);
13
- console.log(' %s\x1b[0m', err.stack);
14
- return;
15
- }
16
- console.log(' √ \x1b[32m%s\x1b[0m', name);
17
- }
18
-
19
- function Point(x, y) {
20
- this.x = x;
21
- this.y = y;
22
- this.sub = function(other){
23
- return new Point(
24
- this.x - other.x
25
- , this.y - other.y);
26
- }
27
- }
28
-
29
- console.log();
30
-
31
- test('new Point(x, y)', function(){
32
- var point = new Point(50, 100);
33
- point.should.be.an.instanceof(Point);
34
- point.should.have.property('x', 50);
35
- point.should.have.property('y', 100);
36
- });
37
-
38
- test('Point#sub()', function(){
39
- var a = new Point(50, 100)
40
- , b = new Point(20, 50);
41
- a.sub(b).should.be.an.instanceof(Point);
42
- a.sub(b).should.not.equal(a);
43
- a.sub(b).should.not.equal(b);
44
- a.sub(b).should.have.property('x', 30);
45
- a.sub(b).should.have.property('y', 50);
46
- });
47
-
48
- test('Point#add()', function(){
49
- var point = new Point(50, 100);
50
- point.should.respondTo('add');
51
- });
52
-
53
- console.log();
@@ -1,2 +0,0 @@
1
-
2
- module.exports = require('./lib/should');
@@ -1,91 +0,0 @@
1
-
2
- // Taken from node's assert module, because it sucks
3
- // and exposes next to nothing useful.
4
-
5
- module.exports = _deepEqual;
6
-
7
- function _deepEqual(actual, expected) {
8
- // 7.1. All identical values are equivalent, as determined by ===.
9
- if (actual === expected) {
10
- return true;
11
-
12
- } else if (Buffer.isBuffer(actual) && Buffer.isBuffer(expected)) {
13
- if (actual.length != expected.length) return false;
14
-
15
- for (var i = 0; i < actual.length; i++) {
16
- if (actual[i] !== expected[i]) return false;
17
- }
18
-
19
- return true;
20
-
21
- // 7.2. If the expected value is a Date object, the actual value is
22
- // equivalent if it is also a Date object that refers to the same time.
23
- } else if (actual instanceof Date && expected instanceof Date) {
24
- return actual.getTime() === expected.getTime();
25
-
26
- // 7.3. Other pairs that do not both pass typeof value == "object",
27
- // equivalence is determined by ==.
28
- } else if (typeof actual != 'object' && typeof expected != 'object') {
29
- return actual == expected;
30
-
31
- // 7.4. For all other Object pairs, including Array objects, equivalence is
32
- // determined by having the same number of owned properties (as verified
33
- // with Object.prototype.hasOwnProperty.call), the same set of keys
34
- // (although not necessarily the same order), equivalent values for every
35
- // corresponding key, and an identical "prototype" property. Note: this
36
- // accounts for both named and indexed properties on Arrays.
37
- } else {
38
- return objEquiv(actual, expected);
39
- }
40
- }
41
-
42
- function isUndefinedOrNull (value) {
43
- return value === null || value === undefined;
44
- }
45
-
46
- function isArguments (object) {
47
- return Object.prototype.toString.call(object) == '[object Arguments]';
48
- }
49
-
50
- function objEquiv (a, b) {
51
- if (isUndefinedOrNull(a) || isUndefinedOrNull(b))
52
- return false;
53
- // an identical "prototype" property.
54
- if (a.prototype !== b.prototype) return false;
55
- //~~~I've managed to break Object.keys through screwy arguments passing.
56
- // Converting to array solves the problem.
57
- if (isArguments(a)) {
58
- if (!isArguments(b)) {
59
- return false;
60
- }
61
- a = pSlice.call(a);
62
- b = pSlice.call(b);
63
- return _deepEqual(a, b);
64
- }
65
- try{
66
- var ka = Object.keys(a),
67
- kb = Object.keys(b),
68
- key, i;
69
- } catch (e) {//happens when one is a string literal and the other isn't
70
- return false;
71
- }
72
- // having the same number of owned properties (keys incorporates hasOwnProperty)
73
- if (ka.length != kb.length)
74
- return false;
75
- //the same set of keys (although not necessarily the same order),
76
- ka.sort();
77
- kb.sort();
78
- //~~~cheap key test
79
- for (i = ka.length - 1; i >= 0; i--) {
80
- if (ka[i] != kb[i])
81
- return false;
82
- }
83
- //equivalent values for every corresponding key, and
84
- //~~~possibly expensive deep test
85
- for (i = ka.length - 1; i >= 0; i--) {
86
- key = ka[i];
87
- if (!_deepEqual(a[key], b[key] ))
88
- return false;
89
- }
90
- return true;
91
- }